summaryrefslogtreecommitdiffstats
path: root/hal/sandbox/PHal.ipdl
diff options
context:
space:
mode:
Diffstat (limited to 'hal/sandbox/PHal.ipdl')
-rw-r--r--hal/sandbox/PHal.ipdl99
1 files changed, 99 insertions, 0 deletions
diff --git a/hal/sandbox/PHal.ipdl b/hal/sandbox/PHal.ipdl
new file mode 100644
index 0000000000..f47df37f84
--- /dev/null
+++ b/hal/sandbox/PHal.ipdl
@@ -0,0 +1,99 @@
+/* -*- 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;
+include protocol PBrowser;
+
+include "mozilla/dom/ReferrerInfoUtils.h";
+include "mozilla/GfxMessageUtils.h";
+
+using mozilla::hal::ScreenOrientation from "mozilla/HalIPCUtils.h";
+using mozilla::hal::SensorType from "mozilla/HalSensor.h";
+using mozilla::hal::WakeLockControl from "mozilla/HalTypes.h";
+using mozilla::hal::ProcessPriority from "mozilla/HalTypes.h";
+using nsIntRect from "nsRect.h";
+using PRTime from "prtime.h";
+
+namespace mozilla {
+
+namespace hal {
+struct BatteryInformation {
+ double level;
+ bool charging;
+ double remainingTime;
+};
+
+struct SensorData {
+ SensorType sensor;
+ PRTime timestamp;
+ float[] values;
+};
+
+struct NetworkInformation {
+ uint32_t type;
+ bool isWifi;
+ uint32_t dhcpGateway;
+};
+
+struct WakeLockInformation {
+ nsString topic;
+ uint32_t numLocks;
+ uint32_t numHidden;
+ uint64_t[] lockingProcesses;
+};
+
+} // namespace hal
+
+namespace hal_sandbox {
+
+[ManualDealloc, ChildImpl=virtual, ParentImpl=virtual]
+sync protocol PHal {
+ manager PContent;
+
+child:
+ async NotifyBatteryChange(BatteryInformation aBatteryInfo);
+ async NotifyNetworkChange(NetworkInformation aNetworkInfo);
+ async NotifyWakeLockChange(WakeLockInformation aWakeLockInfo);
+
+parent:
+ async Vibrate(uint32_t[] pattern, uint64_t[] id, PBrowser browser);
+ async CancelVibrate(uint64_t[] id, PBrowser browser);
+
+ async EnableBatteryNotifications();
+ async DisableBatteryNotifications();
+ sync GetCurrentBatteryInformation()
+ returns (BatteryInformation aBatteryInfo);
+
+ async EnableNetworkNotifications();
+ async DisableNetworkNotifications();
+ sync GetCurrentNetworkInformation()
+ returns (NetworkInformation aNetworkInfo);
+
+ async ModifyWakeLock(nsString aTopic,
+ WakeLockControl aLockAdjust,
+ WakeLockControl aHiddenAdjust,
+ uint64_t aProcessID);
+ async EnableWakeLockNotifications();
+ async DisableWakeLockNotifications();
+ sync GetWakeLockInfo(nsString aTopic)
+ returns (WakeLockInformation aWakeLockInfo);
+
+ async LockScreenOrientation(ScreenOrientation aOrientation)
+ returns (nsresult result);
+ async UnlockScreenOrientation();
+
+child:
+ async NotifySensorChange(SensorData aSensorData);
+
+parent:
+ async EnableSensorNotifications(SensorType aSensor);
+ async DisableSensorNotifications(SensorType aSensor);
+
+ async __delete__();
+};
+
+} // namespace hal
+} // namespace mozilla