summaryrefslogtreecommitdiffstats
path: root/dom/chrome-webidl/PlacesObservers.webidl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/chrome-webidl/PlacesObservers.webidl')
-rw-r--r--dom/chrome-webidl/PlacesObservers.webidl31
1 files changed, 31 insertions, 0 deletions
diff --git a/dom/chrome-webidl/PlacesObservers.webidl b/dom/chrome-webidl/PlacesObservers.webidl
new file mode 100644
index 0000000000..662d8558ff
--- /dev/null
+++ b/dom/chrome-webidl/PlacesObservers.webidl
@@ -0,0 +1,31 @@
+/* -*- 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/.
+ */
+
+callback PlacesEventCallback = undefined (sequence<PlacesEvent> events);
+
+[ChromeOnly, Exposed=Window]
+interface PlacesWeakCallbackWrapper {
+ constructor(PlacesEventCallback callback);
+};
+
+// Global singleton which should handle all events for places.
+[ChromeOnly, Exposed=Window]
+namespace PlacesObservers {
+ [Throws]
+ undefined addListener(sequence<PlacesEventType> eventTypes,
+ PlacesEventCallback listener);
+ [Throws]
+ undefined addListener(sequence<PlacesEventType> eventTypes,
+ PlacesWeakCallbackWrapper listener);
+ [Throws]
+ undefined removeListener(sequence<PlacesEventType> eventTypes,
+ PlacesEventCallback listener);
+ [Throws]
+ undefined removeListener(sequence<PlacesEventType> eventTypes,
+ PlacesWeakCallbackWrapper listener);
+ [Throws]
+ undefined notifyListeners(sequence<PlacesEvent> events);
+};