summaryrefslogtreecommitdiffstats
path: root/mobile/android/tests/browser/robocop/roboextender/bootstrap.js
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/tests/browser/robocop/roboextender/bootstrap.js')
-rw-r--r--mobile/android/tests/browser/robocop/roboextender/bootstrap.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/mobile/android/tests/browser/robocop/roboextender/bootstrap.js b/mobile/android/tests/browser/robocop/roboextender/bootstrap.js
new file mode 100644
index 000000000..e903aa3f6
--- /dev/null
+++ b/mobile/android/tests/browser/robocop/roboextender/bootstrap.js
@@ -0,0 +1,65 @@
+
+var Cc = Components.classes;
+var Ci = Components.interfaces;
+var Cu = Components.utils;
+
+Cu.import("resource://gre/modules/Services.jsm");
+
+function loadIntoWindow(window) {}
+function unloadFromWindow(window) {}
+
+function _sendMessageToJava (aMsg) {
+ return Services.androidBridge.handleGeckoMessage(aMsg);
+};
+
+/*
+ bootstrap.js API
+*/
+var windowListener = {
+ onOpenWindow: function(aWindow) {
+ // Wait for the window to finish loading
+ let domWindow = aWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindow);
+ domWindow.addEventListener("load", function() {
+ domWindow.removeEventListener("load", arguments.callee, false);
+ if (domWindow) {
+ domWindow.addEventListener("scroll", function(e) {
+ let message = {
+ type: 'robocop:scroll',
+ y: XPCNativeWrapper.unwrap(e.target).documentElement.scrollTop,
+ height: XPCNativeWrapper.unwrap(e.target).documentElement.scrollHeight,
+ cheight: XPCNativeWrapper.unwrap(e.target).documentElement.clientHeight,
+ };
+ _sendMessageToJava(message);
+ });
+ }
+ }, false);
+ },
+ onCloseWindow: function(aWindow) { },
+ onWindowTitleChange: function(aWindow, aTitle) { }
+};
+
+function startup(aData, aReason) {
+ let wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
+
+ // Load into any new windows
+ wm.addListener(windowListener);
+ Services.obs.addObserver(function observe(aSubject, aTopic, aData) {
+ dump("Robocop:Quit received -- requesting quit");
+ let appStartup = Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup);
+ appStartup.quit(Ci.nsIAppStartup.eForceQuit);
+ }, "Robocop:Quit", false);
+}
+
+function shutdown(aData, aReason) {
+ // When the application is shutting down we normally don't have to clean up any UI changes
+ if (aReason == APP_SHUTDOWN) return;
+
+ let wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
+
+ // Stop watching for new windows
+ wm.removeListener(windowListener);
+}
+
+function install(aData, aReason) { }
+function uninstall(aData, aReason) { }
+