Skip to content

Instantly share code, notes, and snippets.

@matbee-eth
Last active December 14, 2015 13:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matbee-eth/5091628 to your computer and use it in GitHub Desktop.
Save matbee-eth/5091628 to your computer and use it in GitHub Desktop.
----
main.js
----
pageWorker = require("sdk/page-worker").Page({
contentURL: data.url("main-worker.html"),
contentScriptFile: [
data.url("js/jquery.min.js"),
data.url("main-worker.js")
]
});
----
main-worker.html
----
<html>
<head>
</head>
<body>
<script src="js/jquery.min.js"></script>
<script>
var host = "https://groupnotes.ca";
addon.port.on("connect", function () {
window.extensionController.connect();
});
addon.port.on("disconnect", function () {
window.extensionController.disconnect();
});
addon.port.on("setHost", function (arg) {
host = arg;
});
window.extensionController = (function() {
var _self = this;
var connecting = false;
var connected = false;
this.enabled = true;
this.status = "initializing";
// Status can equal: none, enabled, disabled
this.setStatus = function(status) {
_self.status = status;
if (status === null || status === 'none') {
addon.port.emit('logged-out');
//chrome.browserAction.setPopup({popup: 'logged-out.html'});
//chrome.browserAction.setIcon({path: '/img/icon-logged-out.png'});
} else if (status === 'enabled') {
//chrome.browserAction.setPopup({popup: 'popup.html'});
addon.port.emit('logged-in');
_self.setEnabled(true);
} else if (status === 'disabled') {
//chrome.browserAction.setPopup({popup: 'popup.html'});
addon.port.emit('logged-in');
_self.setEnabled(false);
}
};
this.connect = function() {
if ((!connecting && !connected) && window.wh === undefined || window.wh === null) {
connecting = true;
var script = document.createElement("script");
script.setAttribute("src", host+"/deepnote.js?extension=true");
document.body.appendChild(script);
script.addEventListener("load", function () {
connected = true;
connecting = false;
});
_self.setStatus('enabled');
}
};
this.disconnect = function () {
_self.setStatus('none');
window.location.reload();
};
this.setEnabled = function(enabled) {
this.enabled = enabled;
if (!enabled) {
//chrome.browserAction.setIcon({path: '/img/icon-disabled.png'});
}
else {
//chrome.browserAction.setIcon({path: '/img/icon.png'});
}
};
this.setStatus(status);
return this;
})();
addon.port.emit("getHost");
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment