Przeglądaj źródła

Fixes extension version parsing. Increases extension version.

master
paweldomas 11 lat temu
rodzic
commit
e50be0e3b9
2 zmienionych plików z 46 dodań i 2 usunięć
  1. 1
    1
      config.js
  2. 45
    1
      desktopsharing.js

+ 1
- 1
config.js Wyświetl plik

@@ -11,5 +11,5 @@ var config = {
11 11
     bosh: '//lambada.jitsi.net/http-bind', // FIXME: use xep-0156 for that
12 12
     desktopSharing: 'ext', // Desktop sharing method. Can be set to 'ext', 'webrtc' or false to disable.
13 13
     chromeExtensionId: 'diibjkoicjeejcmhdnailmkgecihlobk', // Id of desktop streamer Chrome extension
14
-    minChromeExtVersion: '0.0.10' // Required version of Chrome extension
14
+    minChromeExtVersion: '0.1' // Required version of Chrome extension
15 15
 };

+ 45
- 1
desktopsharing.js Wyświetl plik

@@ -202,7 +202,7 @@ function checkExtInstalled(isInstalledCallback) {
202 202
                 // Check installed extension version
203 203
                 var extVersion = response.version;
204 204
                 console.log('Extension version is: '+extVersion);
205
-                var updateRequired = extVersion < config.minChromeExtVersion;
205
+                var updateRequired = isUpdateRequired(config.minChromeExtVersion, extVersion);
206 206
                 if(updateRequired) {
207 207
                     alert(
208 208
                         'Jitsi Desktop Streamer requires update. ' +
@@ -214,6 +214,50 @@ function checkExtInstalled(isInstalledCallback) {
214 214
     );
215 215
 }
216 216
 
217
+/**
218
+ * Checks whether extension update is required.
219
+ * @param minVersion minimal required version
220
+ * @param extVersion current extension version
221
+ * @returns {boolean}
222
+ */
223
+function isUpdateRequired(minVersion, extVersion)
224
+{
225
+    try
226
+    {
227
+        var s1 = minVersion.split('.');
228
+        var s2 = extVersion.split('.');
229
+
230
+        var len = Math.max(s1.length, s2.length);
231
+        for(var i = 0; i < len; i++)
232
+        {
233
+            var n1=0,n2=0;
234
+
235
+            if(i < s1.length)
236
+                n1 = parseInt(s1[i]);
237
+            if(i < s2.length)
238
+                n2 = parseInt(s2[i]);
239
+
240
+            if(isNaN(n1) || isNaN(n2))
241
+            {
242
+                return true;
243
+            }
244
+            else if(n1 !== n2)
245
+            {
246
+                return n1 > n2;
247
+            }
248
+        }
249
+
250
+        // will happen if boths version has identical numbers in
251
+        // their components (even if one of them is longer, has more components)
252
+        return false;
253
+    }
254
+    catch(e)
255
+    {
256
+        console.error("Failed to parse extension version", e);
257
+        return true;
258
+    }
259
+}
260
+
217 261
 function doGetStreamFromExtension(streamCallback, failCallback) {
218 262
     // Sends 'getStream' msg to the extension. Extension id must be defined in the config.
219 263
     chrome.runtime.sendMessage(

Ładowanie…
Anuluj
Zapisz