diff options
author | Matt A. Tobin <email@mattatobin.com> | 2020-02-22 22:44:01 -0500 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-04-14 12:52:59 +0200 |
commit | 57383be95da385b336d988ff713b8e3bf097ce0f (patch) | |
tree | 06392b9c4ca8701a49fe1976f25d10bc4e1582bd /ipc/glue | |
parent | 6ef03f136bac6d677d67d1bcc4e110e891e7c4ca (diff) | |
download | UXP-57383be95da385b336d988ff713b8e3bf097ce0f.tar UXP-57383be95da385b336d988ff713b8e3bf097ce0f.tar.gz UXP-57383be95da385b336d988ff713b8e3bf097ce0f.tar.lz UXP-57383be95da385b336d988ff713b8e3bf097ce0f.tar.xz UXP-57383be95da385b336d988ff713b8e3bf097ce0f.zip |
Issue #1053 - Remove android support from ipc except for ipc/chromium
This does not include android in the imported chromium code as specific research needs done on defines and logic.
Diffstat (limited to 'ipc/glue')
-rw-r--r-- | ipc/glue/GeckoChildProcessHost.cpp | 46 | ||||
-rw-r--r-- | ipc/glue/ProtocolUtils.cpp | 4 | ||||
-rw-r--r-- | ipc/glue/ProtocolUtils.h | 4 | ||||
-rw-r--r-- | ipc/glue/SharedMemoryBasic.h | 4 | ||||
-rw-r--r-- | ipc/glue/SharedMemoryBasic_android.cpp | 139 | ||||
-rw-r--r-- | ipc/glue/SharedMemoryBasic_android.h | 72 | ||||
-rw-r--r-- | ipc/glue/moz.build | 10 |
7 files changed, 3 insertions, 276 deletions
diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp index 9e83a8729..a14be5693 100644 --- a/ipc/glue/GeckoChildProcessHost.cpp +++ b/ipc/glue/GeckoChildProcessHost.cpp @@ -47,17 +47,6 @@ using mozilla::MonitorAutoLock; using mozilla::ipc::GeckoChildProcessHost; -#ifdef ANDROID -// Like its predecessor in nsExceptionHandler.cpp, this is -// the magic number of a file descriptor remapping we must -// preserve for the child process. -static const int kMagicAndroidSystemPropFd = 5; -#endif - -#ifdef MOZ_WIDGET_ANDROID -#include "AndroidBridge.h" -#endif - static const bool kLowRightsSubprocesses = // We only attempted to drop privileges on gonk, because it // had no plugins or extensions to worry about breaking. @@ -170,17 +159,7 @@ GeckoChildProcessHost::GetPathToBinary(FilePath& exePath, GeckoProcessType proce exePath = exePath.DirName(); } -#ifdef MOZ_WIDGET_ANDROID - exePath = exePath.AppendASCII("lib"); - - // We must use the PIE binary on 5.0 and higher - const char* processName = mozilla::AndroidBridge::Bridge()->GetAPIVersion() >= 21 ? - MOZ_CHILD_PROCESS_NAME_PIE : MOZ_CHILD_PROCESS_NAME; - - exePath = exePath.AppendASCII(processName); -#else exePath = exePath.AppendASCII(MOZ_CHILD_PROCESS_NAME); -#endif return BinaryPathType::PluginContainer; } @@ -622,9 +601,6 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector<std::string>& aExt nsCString path; NS_CopyUnicodeToNative(nsDependentString(gGREBinPath), path); # if defined(OS_LINUX) || defined(OS_BSD) -# if defined(MOZ_WIDGET_ANDROID) - path += "/lib"; -# endif // MOZ_WIDGET_ANDROID const char *ld_library_path = PR_GetEnv("LD_LIBRARY_PATH"); nsCString new_ld_lib_path(path.get()); @@ -668,28 +644,6 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector<std::string>& aExt FilePath exePath; BinaryPathType pathType = GetPathToBinary(exePath, mProcessType); -#ifdef MOZ_WIDGET_ANDROID - // The java wrapper unpacks this for us but can't make it executable - chmod(exePath.value().c_str(), 0700); -#endif // MOZ_WIDGET_ANDROID - -#ifdef ANDROID - // Remap the Android property workspace to a well-known int, - // and update the environment to reflect the new value for the - // child process. - const char *apws = getenv("ANDROID_PROPERTY_WORKSPACE"); - if (apws) { - int fd = atoi(apws); - mFileMap.push_back(std::pair<int, int>(fd, kMagicAndroidSystemPropFd)); - - char buf[32]; - char *szptr = strchr(apws, ','); - - snprintf(buf, sizeof(buf), "%d%s", kMagicAndroidSystemPropFd, szptr); - newEnvVars["ANDROID_PROPERTY_WORKSPACE"] = buf; - } -#endif // ANDROID - // remap the IPC socket fd to a well-known int, as the OS does for // STDOUT_FILENO, for example int srcChannelFd, dstChannelFd; diff --git a/ipc/glue/ProtocolUtils.cpp b/ipc/glue/ProtocolUtils.cpp index 7d8a1153c..eb18bb987 100644 --- a/ipc/glue/ProtocolUtils.cpp +++ b/ipc/glue/ProtocolUtils.cpp @@ -183,9 +183,7 @@ LogMessageForProtocol(const char* aTopLevelProtocol, base::ProcessId aOtherPid, aOtherPid, aTopLevelProtocol, aContextDescription, StringFromIPCMessageType(aMessageId)); -#ifdef ANDROID - __android_log_write(ANDROID_LOG_INFO, "GeckoIPC", logMessage.get()); -#endif + fputs(logMessage.get(), stderr); } diff --git a/ipc/glue/ProtocolUtils.h b/ipc/glue/ProtocolUtils.h index 83860d93a..e22f16c1c 100644 --- a/ipc/glue/ProtocolUtils.h +++ b/ipc/glue/ProtocolUtils.h @@ -27,10 +27,6 @@ #include "mozilla/UniquePtr.h" #include "MainThreadUtils.h" -#if defined(ANDROID) && defined(DEBUG) -#include <android/log.h> -#endif - template<typename T> class nsTHashtable; template<typename T> class nsPtrHashKey; diff --git a/ipc/glue/SharedMemoryBasic.h b/ipc/glue/SharedMemoryBasic.h index d8720271f..2bf4a93a0 100644 --- a/ipc/glue/SharedMemoryBasic.h +++ b/ipc/glue/SharedMemoryBasic.h @@ -7,9 +7,7 @@ #ifndef mozilla_ipc_SharedMemoryBasic_h #define mozilla_ipc_SharedMemoryBasic_h -#ifdef ANDROID -# include "mozilla/ipc/SharedMemoryBasic_android.h" -#elif defined(XP_DARWIN) +#ifdef XP_DARWIN # include "mozilla/ipc/SharedMemoryBasic_mach.h" #else # include "mozilla/ipc/SharedMemoryBasic_chromium.h" diff --git a/ipc/glue/SharedMemoryBasic_android.cpp b/ipc/glue/SharedMemoryBasic_android.cpp deleted file mode 100644 index 05c9ca9ad..000000000 --- a/ipc/glue/SharedMemoryBasic_android.cpp +++ /dev/null @@ -1,139 +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 <android/log.h> -#include <errno.h> -#include <fcntl.h> -#include <string.h> -#include <sys/ioctl.h> -#include <sys/mman.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <unistd.h> - -#include "base/process_util.h" - -#include "SharedMemoryBasic.h" - -// -// Temporarily go directly to the kernel interface until we can -// interact better with libcutils. -// -#include <linux/ashmem.h> - -namespace mozilla { -namespace ipc { - -static void -LogError(const char* what) -{ - __android_log_print(ANDROID_LOG_ERROR, "Gecko", - "%s: %s (%d)", what, strerror(errno), errno); -} - -SharedMemoryBasic::SharedMemoryBasic() - : mShmFd(-1) - , mMemory(nullptr) -{ } - -SharedMemoryBasic::~SharedMemoryBasic() -{ - Unmap(); - CloseHandle(); -} - -bool -SharedMemoryBasic::SetHandle(const Handle& aHandle) -{ - MOZ_ASSERT(-1 == mShmFd, "Already Create()d"); - mShmFd = aHandle.fd; - return true; -} - -bool -SharedMemoryBasic::Create(size_t aNbytes) -{ - MOZ_ASSERT(-1 == mShmFd, "Already Create()d"); - - // Carve a new instance off of /dev/ashmem - int shmfd = open("/" ASHMEM_NAME_DEF, O_RDWR, 0600); - if (-1 == shmfd) { - LogError("ShmemAndroid::Create():open"); - return false; - } - - if (ioctl(shmfd, ASHMEM_SET_SIZE, aNbytes)) { - LogError("ShmemAndroid::Unmap():ioctl(SET_SIZE)"); - close(shmfd); - return false; - } - - mShmFd = shmfd; - Created(aNbytes); - return true; -} - -bool -SharedMemoryBasic::Map(size_t nBytes) -{ - MOZ_ASSERT(nullptr == mMemory, "Already Map()d"); - - mMemory = mmap(nullptr, nBytes, - PROT_READ | PROT_WRITE, - MAP_SHARED, - mShmFd, - 0); - if (MAP_FAILED == mMemory) { - LogError("ShmemAndroid::Map()"); - mMemory = nullptr; - return false; - } - - Mapped(nBytes); - return true; -} - -bool -SharedMemoryBasic::ShareToProcess(base::ProcessId/*unused*/, - Handle* aNewHandle) -{ - MOZ_ASSERT(mShmFd >= 0, "Should have been Create()d by now"); - - int shmfdDup = dup(mShmFd); - if (-1 == shmfdDup) { - LogError("ShmemAndroid::ShareToProcess()"); - return false; - } - - aNewHandle->fd = shmfdDup; - aNewHandle->auto_close = true; - return true; -} - -void -SharedMemoryBasic::Unmap() -{ - if (!mMemory) { - return; - } - - if (munmap(mMemory, Size())) { - LogError("ShmemAndroid::Unmap()"); - } - mMemory = nullptr; -} - -void -SharedMemoryBasic::CloseHandle() -{ - if (mShmFd != -1) { - close(mShmFd); - mShmFd = -1; - } -} - -} // namespace ipc -} // namespace mozilla diff --git a/ipc/glue/SharedMemoryBasic_android.h b/ipc/glue/SharedMemoryBasic_android.h deleted file mode 100644 index 488390d9f..000000000 --- a/ipc/glue/SharedMemoryBasic_android.h +++ /dev/null @@ -1,72 +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_ipc_SharedMemoryBasic_android_h -#define mozilla_ipc_SharedMemoryBasic_android_h - -#include "base/file_descriptor_posix.h" - -#include "SharedMemory.h" - -// -// This is a low-level wrapper around platform shared memory. Don't -// use it directly; use Shmem allocated through IPDL interfaces. -// - -namespace mozilla { -namespace ipc { - -class SharedMemoryBasic final : public SharedMemoryCommon<base::FileDescriptor> -{ -public: - SharedMemoryBasic(); - - virtual bool SetHandle(const Handle& aHandle) override; - - virtual bool Create(size_t aNbytes) override; - - virtual bool Map(size_t nBytes) override; - - virtual void CloseHandle() override; - - virtual void* memory() const override - { - return mMemory; - } - - virtual SharedMemoryType Type() const override - { - return TYPE_BASIC; - } - - static Handle NULLHandle() - { - return Handle(); - } - - virtual bool IsHandleValid(const Handle &aHandle) const override - { - return aHandle.fd >= 0; - } - - virtual bool ShareToProcess(base::ProcessId aProcessId, - Handle* aNewHandle) override; - -private: - ~SharedMemoryBasic(); - - void Unmap(); - - // The /dev/ashmem fd we allocate. - int mShmFd; - // Pointer to mapped region, null if unmapped. - void *mMemory; -}; - -} // namespace ipc -} // namespace mozilla - -#endif // ifndef mozilla_ipc_SharedMemoryBasic_android_h diff --git a/ipc/glue/moz.build b/ipc/glue/moz.build index 85d7f8fa0..51e6538ff 100644 --- a/ipc/glue/moz.build +++ b/ipc/glue/moz.build @@ -78,15 +78,7 @@ else: 'CrossProcessMutex_unimplemented.cpp', ] -# Android has its own, -# almost-but-not-quite-compatible-with-POSIX-or-/dev/shm shared memory -# impl. -if CONFIG['OS_TARGET'] == 'Android': - EXPORTS.mozilla.ipc += ['SharedMemoryBasic_android.h'] - UNIFIED_SOURCES += [ - 'SharedMemoryBasic_android.cpp', - ] -elif CONFIG['OS_ARCH'] == 'Darwin': +if CONFIG['OS_ARCH'] == 'Darwin': EXPORTS.mozilla.ipc += ['SharedMemoryBasic_mach.h'] SOURCES += [ 'SharedMemoryBasic_mach.mm', |