1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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) { }
|