Browse Source

Moved auto install to chromeExtension service.

pull/77/head
Simon Eisenmann 12 years ago
parent
commit
d040f7748a
  1. 11
      static/js/services/chromeextension.js
  2. 36
      static/js/services/screensharing.js

11
static/js/services/chromeextension.js

@ -28,6 +28,7 @@ define(["underscore", "jquery"], function(_, $) {
this.registry = {}; this.registry = {};
this.count = 0; this.count = 0;
this.e = $({}); this.e = $({});
this.autoinstall = {};
this.initialize(); this.initialize();
}; };
@ -94,6 +95,16 @@ define(["underscore", "jquery"], function(_, $) {
} }
}; };
ChromeExtension.prototype.registerAutoInstall = function(installFunc, cancelInstallFunc) {
this.autoinstall.install = installFunc;
this.autoinstall.cancel = cancelInstallFunc;
if (!this.available && installFunc) {
this.e.triggerHandler("available", true);
}
};
var extension = new ChromeExtension(); var extension = new ChromeExtension();
$window.addEventListener("message", function(event) { $window.addEventListener("message", function(event) {
//console.log("message", event.origin, event.source === window, event); //console.log("message", event.origin, event.source === window, event);

36
static/js/services/screensharing.js

@ -24,9 +24,7 @@ define(['underscore', 'webrtc.adapter'], function(_) {
return ["$window", "$q", "chromeExtension", function($window, $q, chromeExtension) { return ["$window", "$q", "chromeExtension", function($window, $q, chromeExtension) {
var Screensharing = function() { var Screensharing = function() {
this.autoinstall = { this.autoinstall = false;
enabled: false
};
this.initialize(); this.initialize();
chromeExtension.e.on("available", _.bind(function() { chromeExtension.e.on("available", _.bind(function() {
this.initialize(); this.initialize();
@ -118,20 +116,20 @@ define(['underscore', 'webrtc.adapter'], function(_) {
// See https://bugzilla.mozilla.org/show_bug.cgi?id=923225 // See https://bugzilla.mozilla.org/show_bug.cgi?id=923225
} }
// Auto install support. Auto install itself needs to be implemented in plugin though. // Auto install support.
if (!this.supported && this.autoinstall.install) { if (!this.supported && chromeExtension.autoinstall.install) {
this.supported = true; this.supported = this.autoinstall = true;
this.autoinstall.enabled = true;
var that = this; var that = this;
this.prepare = function(options) { this.prepare = function(options) {
var d = $q.defer(); var d = $q.defer();
var install = this.autoinstall.install(); var install = chromeExtension.autoinstall.install();
install.then(function() { install.then(function() {
that.initialize(true); that.initialize();
if (that.autoinstall.enabled) { if (that.autoinstall) {
// We are still on auto install - must have failed. // We are still on auto install - must have failed.
d.reject("Auto install failed"); d.reject("Auto install failed");
} else { } else {
// Seems we can do it now.
var prepare = that.prepare(options); var prepare = that.prepare(options);
prepare.then(function(id) { prepare.then(function(id) {
d.resolve(id); d.resolve(id);
@ -144,12 +142,16 @@ define(['underscore', 'webrtc.adapter'], function(_) {
}); });
return d.promise; return d.promise;
}; };
this.cancel = this.autoinstall.cancel; this.cancel = function() {
if (chromeExtension.autoinstall.cancel) {
chromeExtension.autoinstall.cancel();
}
};
} else { } else {
this.autoinstall.enabled = false; this.autoinstall = false;
} }
console.log("Screensharing support", this.supported, this.autoinstall.enabled ? "autoinstall" : ""); console.log("Screensharing support", this.supported, this.autoinstall ? "autoinstall" : "");
}; };
@ -169,15 +171,7 @@ define(['underscore', 'webrtc.adapter'], function(_) {
} }
}; };
Screensharing.prototype.registerAutoInstall = function(installFunc, cancelInstallFunc) {
this.autoinstall.install = installFunc;
this.autoinstall.cancel = cancelInstallFunc;
if (!this.supported) {
this.initialize();
}
};
// Expose. // Expose.
var screensharing = new Screensharing(); var screensharing = new Screensharing();

Loading…
Cancel
Save