Actually, nsIHapticFeedback is called on content process. Then it calls OS APIs on content process. So if is is isolated process, it doesn't work or it will crash. This patch moves haptic feedback implementation to hal to call OS APIs on chrome process, like vibration. Differential Revision: https://phabricator.services.mozilla.com/D241929
142 lines
4.1 KiB
Python
142 lines
4.1 KiB
Python
# -*- 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/.
|
|
|
|
with Files("**"):
|
|
BUG_COMPONENT = ("Core", "Hardware Abstraction Layer (HAL)")
|
|
|
|
EXPORTS.mozilla += [
|
|
"Hal.h",
|
|
"HalBatteryInformation.h",
|
|
"HalImpl.h",
|
|
"HalIPCUtils.h",
|
|
"HalNetworkInformation.h",
|
|
"HalSandbox.h",
|
|
"HalScreenConfiguration.h",
|
|
"HalSensor.h",
|
|
"HalTypes.h",
|
|
"HalWakeLock.h",
|
|
"HalWakeLockInformation.h",
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
"HalWakeLock.cpp",
|
|
"sandbox/SandboxHal.cpp",
|
|
"WindowIdentifier.cpp",
|
|
]
|
|
|
|
# Hal.cpp cannot be built in unified mode because it relies on HalImpl.h.
|
|
SOURCES += [
|
|
"Hal.cpp",
|
|
]
|
|
|
|
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
|
|
LOCAL_INCLUDES += [
|
|
"/widget/android",
|
|
]
|
|
UNIFIED_SOURCES += [
|
|
"android/AndroidHapticFeedback.cpp",
|
|
"android/AndroidHeterogeneousCpuInfo.cpp",
|
|
"android/AndroidPerformanceHintManager.cpp",
|
|
"android/AndroidProcessPriority.cpp",
|
|
"android/AndroidSensor.cpp",
|
|
]
|
|
# AndroidHal.cpp cannot be built in unified mode because it relies on HalImpl.h.
|
|
SOURCES += [
|
|
"android/AndroidHal.cpp",
|
|
]
|
|
elif CONFIG["OS_TARGET"] == "Linux":
|
|
UNIFIED_SOURCES += [
|
|
"fallback/FallbackHeterogeneousCpuInfo.cpp",
|
|
"fallback/FallbackScreenConfiguration.cpp",
|
|
"fallback/FallbackSensor.cpp",
|
|
"fallback/FallbackVibration.cpp",
|
|
"linux/LinuxProcessPriority.cpp",
|
|
]
|
|
if CONFIG["MOZ_ENABLE_DBUS"]:
|
|
UNIFIED_SOURCES += [
|
|
"linux/UPowerClient.cpp",
|
|
]
|
|
else:
|
|
UNIFIED_SOURCES += [
|
|
"fallback/FallbackBattery.cpp",
|
|
]
|
|
elif CONFIG["OS_TARGET"] == "WINNT":
|
|
UNIFIED_SOURCES += [
|
|
"fallback/FallbackVibration.cpp",
|
|
"windows/WindowsHeterogeneousCpuInfo.cpp",
|
|
"windows/WindowsProcessPriority.cpp",
|
|
"windows/WindowsScreenConfiguration.cpp",
|
|
"windows/WindowsSensor.cpp",
|
|
]
|
|
# WindowsBattery.cpp cannot be built in unified mode because it relies on HalImpl.h.
|
|
SOURCES += [
|
|
"windows/WindowsBattery.cpp",
|
|
]
|
|
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
|
|
UNIFIED_SOURCES += [
|
|
"cocoa/CocoaBattery.cpp",
|
|
"cocoa/CocoaHeterogeneousCpuInfo.cpp",
|
|
"fallback/FallbackProcessPriority.cpp",
|
|
"fallback/FallbackScreenConfiguration.cpp",
|
|
"fallback/FallbackVibration.cpp",
|
|
]
|
|
elif CONFIG["OS_TARGET"] in ("OpenBSD", "NetBSD", "FreeBSD", "DragonFly"):
|
|
UNIFIED_SOURCES += [
|
|
"fallback/FallbackHeterogeneousCpuInfo.cpp",
|
|
"fallback/FallbackProcessPriority.cpp",
|
|
"fallback/FallbackScreenConfiguration.cpp",
|
|
"fallback/FallbackSensor.cpp",
|
|
"fallback/FallbackVibration.cpp",
|
|
]
|
|
if CONFIG["MOZ_ENABLE_DBUS"]:
|
|
UNIFIED_SOURCES += [
|
|
"linux/UPowerClient.cpp",
|
|
]
|
|
else:
|
|
UNIFIED_SOURCES += [
|
|
"fallback/FallbackBattery.cpp",
|
|
]
|
|
else:
|
|
UNIFIED_SOURCES += [
|
|
"fallback/FallbackBattery.cpp",
|
|
"fallback/FallbackHeterogeneousCpuInfo.cpp",
|
|
"fallback/FallbackProcessPriority.cpp",
|
|
"fallback/FallbackScreenConfiguration.cpp",
|
|
"fallback/FallbackSensor.cpp",
|
|
"fallback/FallbackVibration.cpp",
|
|
]
|
|
|
|
# Fallbacks for backends implemented on Android only.
|
|
if CONFIG["MOZ_WIDGET_TOOLKIT"] != "android":
|
|
UNIFIED_SOURCES += [
|
|
"fallback/FallbackHapticFeedback.cpp",
|
|
"fallback/FallbackNetwork.cpp",
|
|
"fallback/FallbackPerformanceHintManager.cpp",
|
|
]
|
|
|
|
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
|
|
UNIFIED_SOURCES += [
|
|
"cocoa/CocoaSensor.mm",
|
|
"cocoa/smslib.mm",
|
|
]
|
|
|
|
IPDL_SOURCES = [
|
|
"sandbox/PHal.ipdl",
|
|
]
|
|
|
|
include("/ipc/chromium/chromium-config.mozbuild")
|
|
|
|
FINAL_LIBRARY = "xul"
|
|
|
|
LOCAL_INCLUDES += [
|
|
"/dom/base",
|
|
]
|
|
|
|
CFLAGS += CONFIG["GLIB_CFLAGS"]
|
|
CFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
|
|
CXXFLAGS += CONFIG["GLIB_CFLAGS"]
|
|
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
|