From 42e7fc84f6303f5d1486685ce1ec34764220b951 Mon Sep 17 00:00:00 2001 From: Simon Eisenmann Date: Tue, 22 Jul 2014 13:55:57 +0200 Subject: [PATCH] Show message if screen sharing start failed for arbitrary reason. Fall back to legacy screen sharing when possible and inline install failed. --- static/js/directives/screenshare.js | 1 + static/js/services/screensharing.js | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/static/js/directives/screenshare.js b/static/js/directives/screenshare.js index c9e0f90f..9bb5d4d0 100644 --- a/static/js/directives/screenshare.js +++ b/static/js/directives/screenshare.js @@ -177,6 +177,7 @@ define(['jquery', 'underscore', 'text!partials/screenshare.html', 'text!partials } }, function(err) { console.log("Screen sharing request returned error", err); + alertify.dialog.alert(translation._("Failed to start screen sharing (%s).", err)); $scope.stopScreenshare(); }); diff --git a/static/js/services/screensharing.js b/static/js/services/screensharing.js index 3ec4a02a..0c8cdcdb 100644 --- a/static/js/services/screensharing.js +++ b/static/js/services/screensharing.js @@ -130,6 +130,7 @@ define(['underscore', 'webrtc.adapter'], function(_) { this.supported = this.autoinstall = true; var that = this; var waiting = false; + var prepareAlternative = this.prepare; this.prepare = function(options) { var d = $q.defer(); var install = chromeExtension.autoinstall.install(); @@ -167,7 +168,17 @@ define(['underscore', 'webrtc.adapter'], function(_) { d.reject("Timeout while waiting for extension getting installed"); }, 30000); }, function(err) { - d.reject(err); + console.log("Auto install of extension failed.", err); + if (prepareAlternative) { + var alternative = prepareAlternative(options); + alternative.then(function(id) { + d.resolve(id); + }, function() { + d.reject(err); + }); + } else { + d.reject(err); + } }); return d.promise; };