Browse Source

feat(external-local-storage): support

j8
Hristo Terezov 5 years ago
parent
commit
dc6d3daef7

+ 5
- 0
app.js View File

6
 
6
 
7
 import 'olm';
7
 import 'olm';
8
 
8
 
9
+// We need to setup the jitsi-local-storage as early as possible so that we can start using it.
10
+// NOTE: If jitsi-local-storage is used before the initial setup is performed this will brake the use case when we use
11
+// the  local storage from the parent page when the localStorage is disabled. Also the setup is relying that
12
+// window.location is not changed and still has all URL parameters.
13
+import './react/features/base/jitsi-local-storage/setup';
9
 import conference from './conference';
14
 import conference from './conference';
10
 import API from './modules/API';
15
 import API from './modules/API';
11
 import UI from './modules/UI/UI';
16
 import UI from './modules/UI/UI';

+ 13
- 0
modules/API/API.js View File

1026
         });
1026
         });
1027
     }
1027
     }
1028
 
1028
 
1029
+    /**
1030
+     * Notify external application (if API is enabled) that the localStorage has changed.
1031
+     *
1032
+     * @param {string} localStorageContent - The new localStorageContent.
1033
+     * @returns {void}
1034
+     */
1035
+    notifyLocalStorageChanged(localStorageContent: string) {
1036
+        this._sendEvent({
1037
+            name: 'local-storage-changed',
1038
+            localStorageContent
1039
+        });
1040
+    }
1041
+
1029
     /**
1042
     /**
1030
      * Disposes the allocated resources.
1043
      * Disposes the allocated resources.
1031
      *
1044
      *

+ 11
- 1
modules/API/external/external_api.js View File

1
+import { jitsiLocalStorage } from '@jitsi/js-utils/jitsi-local-storage';
1
 import EventEmitter from 'events';
2
 import EventEmitter from 'events';
2
 
3
 
3
 import { urlObjectToString } from '../../../react/features/base/util/uri';
4
 import { urlObjectToString } from '../../../react/features/base/util/uri';
268
             userInfo,
269
             userInfo,
269
             e2eeKey
270
             e2eeKey
270
         } = parseArguments(args);
271
         } = parseArguments(args);
272
+        const localStorageContent = jitsiLocalStorage.getItem('jitsiLocalStorage');
271
 
273
 
272
         this._parentNode = parentNode;
274
         this._parentNode = parentNode;
273
         this._url = generateURL(domain, {
275
         this._url = generateURL(domain, {
277
             noSSL,
279
             noSSL,
278
             roomName,
280
             roomName,
279
             devices,
281
             devices,
280
-            userInfo
282
+            userInfo,
283
+            appData: {
284
+                localStorageContent
285
+            }
281
         });
286
         });
282
         this._createIFrame(height, width, onload);
287
         this._createIFrame(height, width, onload);
283
         this._transport = new Transport({
288
         this._transport = new Transport({
526
             case 'video-quality-changed':
531
             case 'video-quality-changed':
527
                 this._videoQuality = data.videoQuality;
532
                 this._videoQuality = data.videoQuality;
528
                 break;
533
                 break;
534
+            case 'local-storage-changed':
535
+                jitsiLocalStorage.setItem('jitsiLocalStorage', data.localStorageContent);
536
+
537
+                // Since this is internal event we don't need to emit it to the consumer of the API.
538
+                return true;
529
             }
539
             }
530
 
540
 
531
             const eventName = events[name];
541
             const eventName = events[name];

+ 144
- 90
package-lock.json View File

3302
       }
3302
       }
3303
     },
3303
     },
3304
     "@jitsi/js-utils": {
3304
     "@jitsi/js-utils": {
3305
-      "version": "1.0.1",
3306
-      "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-1.0.1.tgz",
3307
-      "integrity": "sha512-Lj4SKc3TBJAdAyNoY03BfYiHSXE3cesZMnkzTna9xSkhWVq/ftWUFc6qw6aQj4fPrgbqysyim7AMJnuKBoLaUw==",
3305
+      "version": "1.0.2",
3306
+      "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-1.0.2.tgz",
3307
+      "integrity": "sha512-ls+X9tn9EemUQwPEBr7Z0UD4sjRtwcu1Bh4MUo0Hv4arp0KVzcCYCW+mofsvuZvHg8xJX12LLNVgUKi1X5XTGg==",
3308
       "requires": {
3308
       "requires": {
3309
         "bowser": "2.7.0",
3309
         "bowser": "2.7.0",
3310
         "js-md5": "0.7.3"
3310
         "js-md5": "0.7.3"
5778
         },
5778
         },
5779
         "kind-of": {
5779
         "kind-of": {
5780
           "version": "6.0.2",
5780
           "version": "6.0.2",
5781
-          "resolved": ""
5781
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
5782
+          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
5782
         }
5783
         }
5783
       }
5784
       }
5784
     },
5785
     },
8449
         },
8450
         },
8450
         "kind-of": {
8451
         "kind-of": {
8451
           "version": "6.0.2",
8452
           "version": "6.0.2",
8452
-          "resolved": ""
8453
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
8454
+          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
8453
         }
8455
         }
8454
       }
8456
       }
8455
     },
8457
     },
8845
       "dependencies": {
8847
       "dependencies": {
8846
         "abbrev": {
8848
         "abbrev": {
8847
           "version": "1.1.1",
8849
           "version": "1.1.1",
8848
-          "bundled": true,
8850
+          "resolved": false,
8851
+          "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
8849
           "optional": true
8852
           "optional": true
8850
         },
8853
         },
8851
         "ansi-regex": {
8854
         "ansi-regex": {
8852
           "version": "2.1.1",
8855
           "version": "2.1.1",
8853
-          "bundled": true,
8856
+          "resolved": false,
8857
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
8854
           "optional": true
8858
           "optional": true
8855
         },
8859
         },
8856
         "aproba": {
8860
         "aproba": {
8857
           "version": "1.2.0",
8861
           "version": "1.2.0",
8858
-          "bundled": true,
8862
+          "resolved": false,
8863
+          "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
8859
           "optional": true
8864
           "optional": true
8860
         },
8865
         },
8861
         "are-we-there-yet": {
8866
         "are-we-there-yet": {
8862
           "version": "1.1.5",
8867
           "version": "1.1.5",
8863
-          "bundled": true,
8868
+          "resolved": false,
8869
+          "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
8864
           "optional": true,
8870
           "optional": true,
8865
           "requires": {
8871
           "requires": {
8866
             "delegates": "^1.0.0",
8872
             "delegates": "^1.0.0",
8869
         },
8875
         },
8870
         "balanced-match": {
8876
         "balanced-match": {
8871
           "version": "1.0.0",
8877
           "version": "1.0.0",
8872
-          "bundled": true,
8878
+          "resolved": false,
8879
+          "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
8873
           "optional": true
8880
           "optional": true
8874
         },
8881
         },
8875
         "brace-expansion": {
8882
         "brace-expansion": {
8876
           "version": "1.1.11",
8883
           "version": "1.1.11",
8877
-          "bundled": true,
8884
+          "resolved": false,
8885
+          "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
8878
           "optional": true,
8886
           "optional": true,
8879
           "requires": {
8887
           "requires": {
8880
             "balanced-match": "^1.0.0",
8888
             "balanced-match": "^1.0.0",
8883
         },
8891
         },
8884
         "chownr": {
8892
         "chownr": {
8885
           "version": "1.1.1",
8893
           "version": "1.1.1",
8886
-          "bundled": true,
8894
+          "resolved": false,
8895
+          "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
8887
           "optional": true
8896
           "optional": true
8888
         },
8897
         },
8889
         "code-point-at": {
8898
         "code-point-at": {
8890
           "version": "1.1.0",
8899
           "version": "1.1.0",
8891
-          "bundled": true,
8900
+          "resolved": false,
8901
+          "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
8892
           "optional": true
8902
           "optional": true
8893
         },
8903
         },
8894
         "concat-map": {
8904
         "concat-map": {
8895
           "version": "0.0.1",
8905
           "version": "0.0.1",
8896
-          "bundled": true,
8906
+          "resolved": false,
8907
+          "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
8897
           "optional": true
8908
           "optional": true
8898
         },
8909
         },
8899
         "console-control-strings": {
8910
         "console-control-strings": {
8900
           "version": "1.1.0",
8911
           "version": "1.1.0",
8901
-          "bundled": true,
8912
+          "resolved": false,
8913
+          "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
8902
           "optional": true
8914
           "optional": true
8903
         },
8915
         },
8904
         "core-util-is": {
8916
         "core-util-is": {
8905
           "version": "1.0.2",
8917
           "version": "1.0.2",
8906
-          "bundled": true,
8918
+          "resolved": false,
8919
+          "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
8907
           "optional": true
8920
           "optional": true
8908
         },
8921
         },
8909
         "debug": {
8922
         "debug": {
8910
           "version": "4.1.1",
8923
           "version": "4.1.1",
8911
-          "bundled": true,
8924
+          "resolved": false,
8925
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
8912
           "optional": true,
8926
           "optional": true,
8913
           "requires": {
8927
           "requires": {
8914
             "ms": "^2.1.1"
8928
             "ms": "^2.1.1"
8916
         },
8930
         },
8917
         "deep-extend": {
8931
         "deep-extend": {
8918
           "version": "0.6.0",
8932
           "version": "0.6.0",
8919
-          "bundled": true,
8933
+          "resolved": false,
8934
+          "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
8920
           "optional": true
8935
           "optional": true
8921
         },
8936
         },
8922
         "delegates": {
8937
         "delegates": {
8923
           "version": "1.0.0",
8938
           "version": "1.0.0",
8924
-          "bundled": true,
8939
+          "resolved": false,
8940
+          "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
8925
           "optional": true
8941
           "optional": true
8926
         },
8942
         },
8927
         "detect-libc": {
8943
         "detect-libc": {
8928
           "version": "1.0.3",
8944
           "version": "1.0.3",
8929
-          "bundled": true,
8945
+          "resolved": false,
8946
+          "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
8930
           "optional": true
8947
           "optional": true
8931
         },
8948
         },
8932
         "fs-minipass": {
8949
         "fs-minipass": {
8933
           "version": "1.2.5",
8950
           "version": "1.2.5",
8934
-          "bundled": true,
8951
+          "resolved": false,
8952
+          "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
8935
           "optional": true,
8953
           "optional": true,
8936
           "requires": {
8954
           "requires": {
8937
             "minipass": "^2.2.1"
8955
             "minipass": "^2.2.1"
8939
         },
8957
         },
8940
         "fs.realpath": {
8958
         "fs.realpath": {
8941
           "version": "1.0.0",
8959
           "version": "1.0.0",
8942
-          "bundled": true,
8960
+          "resolved": false,
8961
+          "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
8943
           "optional": true
8962
           "optional": true
8944
         },
8963
         },
8945
         "gauge": {
8964
         "gauge": {
8946
           "version": "2.7.4",
8965
           "version": "2.7.4",
8947
-          "bundled": true,
8966
+          "resolved": false,
8967
+          "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
8948
           "optional": true,
8968
           "optional": true,
8949
           "requires": {
8969
           "requires": {
8950
             "aproba": "^1.0.3",
8970
             "aproba": "^1.0.3",
8959
         },
8979
         },
8960
         "glob": {
8980
         "glob": {
8961
           "version": "7.1.3",
8981
           "version": "7.1.3",
8962
-          "bundled": true,
8982
+          "resolved": false,
8983
+          "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
8963
           "optional": true,
8984
           "optional": true,
8964
           "requires": {
8985
           "requires": {
8965
             "fs.realpath": "^1.0.0",
8986
             "fs.realpath": "^1.0.0",
8972
         },
8993
         },
8973
         "has-unicode": {
8994
         "has-unicode": {
8974
           "version": "2.0.1",
8995
           "version": "2.0.1",
8975
-          "bundled": true,
8996
+          "resolved": false,
8997
+          "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
8976
           "optional": true
8998
           "optional": true
8977
         },
8999
         },
8978
         "iconv-lite": {
9000
         "iconv-lite": {
8979
           "version": "0.4.24",
9001
           "version": "0.4.24",
8980
-          "bundled": true,
9002
+          "resolved": false,
9003
+          "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
8981
           "optional": true,
9004
           "optional": true,
8982
           "requires": {
9005
           "requires": {
8983
             "safer-buffer": ">= 2.1.2 < 3"
9006
             "safer-buffer": ">= 2.1.2 < 3"
8985
         },
9008
         },
8986
         "ignore-walk": {
9009
         "ignore-walk": {
8987
           "version": "3.0.1",
9010
           "version": "3.0.1",
8988
-          "bundled": true,
9011
+          "resolved": false,
9012
+          "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
8989
           "optional": true,
9013
           "optional": true,
8990
           "requires": {
9014
           "requires": {
8991
             "minimatch": "^3.0.4"
9015
             "minimatch": "^3.0.4"
8993
         },
9017
         },
8994
         "inflight": {
9018
         "inflight": {
8995
           "version": "1.0.6",
9019
           "version": "1.0.6",
8996
-          "bundled": true,
9020
+          "resolved": false,
9021
+          "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
8997
           "optional": true,
9022
           "optional": true,
8998
           "requires": {
9023
           "requires": {
8999
             "once": "^1.3.0",
9024
             "once": "^1.3.0",
9002
         },
9027
         },
9003
         "inherits": {
9028
         "inherits": {
9004
           "version": "2.0.3",
9029
           "version": "2.0.3",
9005
-          "bundled": true,
9030
+          "resolved": false,
9031
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
9006
           "optional": true
9032
           "optional": true
9007
         },
9033
         },
9008
         "ini": {
9034
         "ini": {
9009
           "version": "1.3.5",
9035
           "version": "1.3.5",
9010
-          "bundled": true,
9036
+          "resolved": false,
9037
+          "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
9011
           "optional": true
9038
           "optional": true
9012
         },
9039
         },
9013
         "is-fullwidth-code-point": {
9040
         "is-fullwidth-code-point": {
9014
           "version": "1.0.0",
9041
           "version": "1.0.0",
9015
-          "bundled": true,
9042
+          "resolved": false,
9043
+          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
9016
           "optional": true,
9044
           "optional": true,
9017
           "requires": {
9045
           "requires": {
9018
             "number-is-nan": "^1.0.0"
9046
             "number-is-nan": "^1.0.0"
9020
         },
9048
         },
9021
         "isarray": {
9049
         "isarray": {
9022
           "version": "1.0.0",
9050
           "version": "1.0.0",
9023
-          "bundled": true,
9051
+          "resolved": false,
9052
+          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
9024
           "optional": true
9053
           "optional": true
9025
         },
9054
         },
9026
         "minimatch": {
9055
         "minimatch": {
9027
           "version": "3.0.4",
9056
           "version": "3.0.4",
9028
-          "bundled": true,
9057
+          "resolved": false,
9058
+          "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
9029
           "optional": true,
9059
           "optional": true,
9030
           "requires": {
9060
           "requires": {
9031
             "brace-expansion": "^1.1.7"
9061
             "brace-expansion": "^1.1.7"
9033
         },
9063
         },
9034
         "minimist": {
9064
         "minimist": {
9035
           "version": "0.0.8",
9065
           "version": "0.0.8",
9036
-          "bundled": true,
9066
+          "resolved": false,
9067
+          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
9037
           "optional": true
9068
           "optional": true
9038
         },
9069
         },
9039
         "minipass": {
9070
         "minipass": {
9040
           "version": "2.3.5",
9071
           "version": "2.3.5",
9041
-          "bundled": true,
9072
+          "resolved": false,
9073
+          "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
9042
           "optional": true,
9074
           "optional": true,
9043
           "requires": {
9075
           "requires": {
9044
             "safe-buffer": "^5.1.2",
9076
             "safe-buffer": "^5.1.2",
9047
         },
9079
         },
9048
         "minizlib": {
9080
         "minizlib": {
9049
           "version": "1.2.1",
9081
           "version": "1.2.1",
9050
-          "bundled": true,
9082
+          "resolved": false,
9083
+          "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
9051
           "optional": true,
9084
           "optional": true,
9052
           "requires": {
9085
           "requires": {
9053
             "minipass": "^2.2.1"
9086
             "minipass": "^2.2.1"
9055
         },
9088
         },
9056
         "mkdirp": {
9089
         "mkdirp": {
9057
           "version": "0.5.1",
9090
           "version": "0.5.1",
9058
-          "bundled": true,
9091
+          "resolved": false,
9092
+          "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
9059
           "optional": true,
9093
           "optional": true,
9060
           "requires": {
9094
           "requires": {
9061
             "minimist": "0.0.8"
9095
             "minimist": "0.0.8"
9063
         },
9097
         },
9064
         "ms": {
9098
         "ms": {
9065
           "version": "2.1.1",
9099
           "version": "2.1.1",
9066
-          "bundled": true,
9100
+          "resolved": false,
9101
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
9067
           "optional": true
9102
           "optional": true
9068
         },
9103
         },
9069
         "needle": {
9104
         "needle": {
9070
           "version": "2.3.0",
9105
           "version": "2.3.0",
9071
-          "bundled": true,
9106
+          "resolved": false,
9107
+          "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
9072
           "optional": true,
9108
           "optional": true,
9073
           "requires": {
9109
           "requires": {
9074
             "debug": "^4.1.0",
9110
             "debug": "^4.1.0",
9078
         },
9114
         },
9079
         "node-pre-gyp": {
9115
         "node-pre-gyp": {
9080
           "version": "0.12.0",
9116
           "version": "0.12.0",
9081
-          "bundled": true,
9117
+          "resolved": false,
9118
+          "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
9082
           "optional": true,
9119
           "optional": true,
9083
           "requires": {
9120
           "requires": {
9084
             "detect-libc": "^1.0.2",
9121
             "detect-libc": "^1.0.2",
9095
         },
9132
         },
9096
         "nopt": {
9133
         "nopt": {
9097
           "version": "4.0.1",
9134
           "version": "4.0.1",
9098
-          "bundled": true,
9135
+          "resolved": false,
9136
+          "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
9099
           "optional": true,
9137
           "optional": true,
9100
           "requires": {
9138
           "requires": {
9101
             "abbrev": "1",
9139
             "abbrev": "1",
9104
         },
9142
         },
9105
         "npm-bundled": {
9143
         "npm-bundled": {
9106
           "version": "1.0.6",
9144
           "version": "1.0.6",
9107
-          "bundled": true,
9145
+          "resolved": false,
9146
+          "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
9108
           "optional": true
9147
           "optional": true
9109
         },
9148
         },
9110
         "npm-packlist": {
9149
         "npm-packlist": {
9111
           "version": "1.4.1",
9150
           "version": "1.4.1",
9112
-          "bundled": true,
9151
+          "resolved": false,
9152
+          "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
9113
           "optional": true,
9153
           "optional": true,
9114
           "requires": {
9154
           "requires": {
9115
             "ignore-walk": "^3.0.1",
9155
             "ignore-walk": "^3.0.1",
9118
         },
9158
         },
9119
         "npmlog": {
9159
         "npmlog": {
9120
           "version": "4.1.2",
9160
           "version": "4.1.2",
9121
-          "bundled": true,
9161
+          "resolved": false,
9162
+          "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
9122
           "optional": true,
9163
           "optional": true,
9123
           "requires": {
9164
           "requires": {
9124
             "are-we-there-yet": "~1.1.2",
9165
             "are-we-there-yet": "~1.1.2",
9129
         },
9170
         },
9130
         "number-is-nan": {
9171
         "number-is-nan": {
9131
           "version": "1.0.1",
9172
           "version": "1.0.1",
9132
-          "bundled": true,
9173
+          "resolved": false,
9174
+          "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
9133
           "optional": true
9175
           "optional": true
9134
         },
9176
         },
9135
         "object-assign": {
9177
         "object-assign": {
9136
           "version": "4.1.1",
9178
           "version": "4.1.1",
9137
-          "bundled": true,
9179
+          "resolved": false,
9180
+          "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
9138
           "optional": true
9181
           "optional": true
9139
         },
9182
         },
9140
         "once": {
9183
         "once": {
9141
           "version": "1.4.0",
9184
           "version": "1.4.0",
9142
-          "bundled": true,
9185
+          "resolved": false,
9186
+          "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
9143
           "optional": true,
9187
           "optional": true,
9144
           "requires": {
9188
           "requires": {
9145
             "wrappy": "1"
9189
             "wrappy": "1"
9147
         },
9191
         },
9148
         "os-homedir": {
9192
         "os-homedir": {
9149
           "version": "1.0.2",
9193
           "version": "1.0.2",
9150
-          "bundled": true,
9194
+          "resolved": false,
9195
+          "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
9151
           "optional": true
9196
           "optional": true
9152
         },
9197
         },
9153
         "os-tmpdir": {
9198
         "os-tmpdir": {
9154
           "version": "1.0.2",
9199
           "version": "1.0.2",
9155
-          "bundled": true,
9200
+          "resolved": false,
9201
+          "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
9156
           "optional": true
9202
           "optional": true
9157
         },
9203
         },
9158
         "osenv": {
9204
         "osenv": {
9159
           "version": "0.1.5",
9205
           "version": "0.1.5",
9160
-          "bundled": true,
9206
+          "resolved": false,
9207
+          "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
9161
           "optional": true,
9208
           "optional": true,
9162
           "requires": {
9209
           "requires": {
9163
             "os-homedir": "^1.0.0",
9210
             "os-homedir": "^1.0.0",
9166
         },
9213
         },
9167
         "path-is-absolute": {
9214
         "path-is-absolute": {
9168
           "version": "1.0.1",
9215
           "version": "1.0.1",
9169
-          "bundled": true,
9216
+          "resolved": false,
9217
+          "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
9170
           "optional": true
9218
           "optional": true
9171
         },
9219
         },
9172
         "process-nextick-args": {
9220
         "process-nextick-args": {
9173
           "version": "2.0.0",
9221
           "version": "2.0.0",
9174
-          "bundled": true,
9222
+          "resolved": false,
9223
+          "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
9175
           "optional": true
9224
           "optional": true
9176
         },
9225
         },
9177
         "rc": {
9226
         "rc": {
9178
           "version": "1.2.8",
9227
           "version": "1.2.8",
9179
-          "bundled": true,
9228
+          "resolved": false,
9229
+          "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
9180
           "optional": true,
9230
           "optional": true,
9181
           "requires": {
9231
           "requires": {
9182
             "deep-extend": "^0.6.0",
9232
             "deep-extend": "^0.6.0",
9187
           "dependencies": {
9237
           "dependencies": {
9188
             "minimist": {
9238
             "minimist": {
9189
               "version": "1.2.0",
9239
               "version": "1.2.0",
9190
-              "bundled": true,
9240
+              "resolved": false,
9241
+              "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
9191
               "optional": true
9242
               "optional": true
9192
             }
9243
             }
9193
           }
9244
           }
9194
         },
9245
         },
9195
         "readable-stream": {
9246
         "readable-stream": {
9196
           "version": "2.3.6",
9247
           "version": "2.3.6",
9197
-          "bundled": true,
9248
+          "resolved": false,
9249
+          "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
9198
           "optional": true,
9250
           "optional": true,
9199
           "requires": {
9251
           "requires": {
9200
             "core-util-is": "~1.0.0",
9252
             "core-util-is": "~1.0.0",
9208
         },
9260
         },
9209
         "rimraf": {
9261
         "rimraf": {
9210
           "version": "2.6.3",
9262
           "version": "2.6.3",
9211
-          "bundled": true,
9263
+          "resolved": false,
9264
+          "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
9212
           "optional": true,
9265
           "optional": true,
9213
           "requires": {
9266
           "requires": {
9214
             "glob": "^7.1.3"
9267
             "glob": "^7.1.3"
9216
         },
9269
         },
9217
         "safe-buffer": {
9270
         "safe-buffer": {
9218
           "version": "5.1.2",
9271
           "version": "5.1.2",
9219
-          "bundled": true,
9272
+          "resolved": false,
9273
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
9220
           "optional": true
9274
           "optional": true
9221
         },
9275
         },
9222
         "safer-buffer": {
9276
         "safer-buffer": {
9223
           "version": "2.1.2",
9277
           "version": "2.1.2",
9224
-          "bundled": true,
9278
+          "resolved": false,
9279
+          "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
9225
           "optional": true
9280
           "optional": true
9226
         },
9281
         },
9227
         "sax": {
9282
         "sax": {
9228
           "version": "1.2.4",
9283
           "version": "1.2.4",
9229
-          "bundled": true,
9284
+          "resolved": false,
9285
+          "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
9230
           "optional": true
9286
           "optional": true
9231
         },
9287
         },
9232
         "semver": {
9288
         "semver": {
9233
           "version": "5.7.0",
9289
           "version": "5.7.0",
9234
-          "bundled": true,
9290
+          "resolved": false,
9291
+          "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
9235
           "optional": true
9292
           "optional": true
9236
         },
9293
         },
9237
         "set-blocking": {
9294
         "set-blocking": {
9238
           "version": "2.0.0",
9295
           "version": "2.0.0",
9239
-          "bundled": true,
9296
+          "resolved": false,
9297
+          "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
9240
           "optional": true
9298
           "optional": true
9241
         },
9299
         },
9242
         "signal-exit": {
9300
         "signal-exit": {
9243
           "version": "3.0.2",
9301
           "version": "3.0.2",
9244
-          "bundled": true,
9302
+          "resolved": false,
9303
+          "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
9245
           "optional": true
9304
           "optional": true
9246
         },
9305
         },
9247
         "string-width": {
9306
         "string-width": {
9248
           "version": "1.0.2",
9307
           "version": "1.0.2",
9249
-          "bundled": true,
9308
+          "resolved": false,
9309
+          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
9250
           "optional": true,
9310
           "optional": true,
9251
           "requires": {
9311
           "requires": {
9252
             "code-point-at": "^1.0.0",
9312
             "code-point-at": "^1.0.0",
9256
         },
9316
         },
9257
         "string_decoder": {
9317
         "string_decoder": {
9258
           "version": "1.1.1",
9318
           "version": "1.1.1",
9259
-          "bundled": true,
9319
+          "resolved": false,
9320
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
9260
           "optional": true,
9321
           "optional": true,
9261
           "requires": {
9322
           "requires": {
9262
             "safe-buffer": "~5.1.0"
9323
             "safe-buffer": "~5.1.0"
9264
         },
9325
         },
9265
         "strip-ansi": {
9326
         "strip-ansi": {
9266
           "version": "3.0.1",
9327
           "version": "3.0.1",
9267
-          "bundled": true,
9328
+          "resolved": false,
9329
+          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
9268
           "optional": true,
9330
           "optional": true,
9269
           "requires": {
9331
           "requires": {
9270
             "ansi-regex": "^2.0.0"
9332
             "ansi-regex": "^2.0.0"
9272
         },
9334
         },
9273
         "strip-json-comments": {
9335
         "strip-json-comments": {
9274
           "version": "2.0.1",
9336
           "version": "2.0.1",
9275
-          "bundled": true,
9337
+          "resolved": false,
9338
+          "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
9276
           "optional": true
9339
           "optional": true
9277
         },
9340
         },
9278
         "tar": {
9341
         "tar": {
9279
           "version": "4.4.8",
9342
           "version": "4.4.8",
9280
-          "bundled": true,
9343
+          "resolved": false,
9344
+          "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
9281
           "optional": true,
9345
           "optional": true,
9282
           "requires": {
9346
           "requires": {
9283
             "chownr": "^1.1.1",
9347
             "chownr": "^1.1.1",
9291
         },
9355
         },
9292
         "util-deprecate": {
9356
         "util-deprecate": {
9293
           "version": "1.0.2",
9357
           "version": "1.0.2",
9294
-          "bundled": true,
9358
+          "resolved": false,
9359
+          "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
9295
           "optional": true
9360
           "optional": true
9296
         },
9361
         },
9297
         "wide-align": {
9362
         "wide-align": {
9298
           "version": "1.1.3",
9363
           "version": "1.1.3",
9299
-          "bundled": true,
9364
+          "resolved": false,
9365
+          "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
9300
           "optional": true,
9366
           "optional": true,
9301
           "requires": {
9367
           "requires": {
9302
             "string-width": "^1.0.2 || 2"
9368
             "string-width": "^1.0.2 || 2"
9304
         },
9370
         },
9305
         "wrappy": {
9371
         "wrappy": {
9306
           "version": "1.0.2",
9372
           "version": "1.0.2",
9307
-          "bundled": true,
9373
+          "resolved": false,
9374
+          "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
9308
           "optional": true
9375
           "optional": true
9309
         },
9376
         },
9310
         "yallist": {
9377
         "yallist": {
9311
           "version": "3.0.3",
9378
           "version": "3.0.3",
9312
-          "bundled": true,
9379
+          "resolved": false,
9380
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
9313
           "optional": true
9381
           "optional": true
9314
         }
9382
         }
9315
       }
9383
       }
10710
       }
10778
       }
10711
     },
10779
     },
10712
     "lib-jitsi-meet": {
10780
     "lib-jitsi-meet": {
10713
-      "version": "github:jitsi/lib-jitsi-meet#a0b8a9c862f46b0e743b8a750c2160acc473ed49",
10714
-      "from": "github:jitsi/lib-jitsi-meet#a0b8a9c862f46b0e743b8a750c2160acc473ed49",
10781
+      "version": "github:jitsi/lib-jitsi-meet#b881ccbcc70cd06cbe1b81fb39178f3ff7803921",
10782
+      "from": "github:jitsi/lib-jitsi-meet#b881ccbcc70cd06cbe1b81fb39178f3ff7803921",
10715
       "requires": {
10783
       "requires": {
10716
-        "@jitsi/js-utils": "1.0.0",
10784
+        "@jitsi/js-utils": "1.0.2",
10717
         "@jitsi/sdp-interop": "1.0.3",
10785
         "@jitsi/sdp-interop": "1.0.3",
10718
         "@jitsi/sdp-simulcast": "0.3.0",
10786
         "@jitsi/sdp-simulcast": "0.3.0",
10719
         "async": "0.9.0",
10787
         "async": "0.9.0",
10731
         "webrtc-adapter": "7.5.0"
10799
         "webrtc-adapter": "7.5.0"
10732
       },
10800
       },
10733
       "dependencies": {
10801
       "dependencies": {
10734
-        "@jitsi/js-utils": {
10735
-          "version": "1.0.0",
10736
-          "resolved": "https://registry.npmjs.org/@jitsi/js-utils/-/js-utils-1.0.0.tgz",
10737
-          "integrity": "sha512-at9GPMP7IL0v6QS1Gs9c5MbbiN2AT0uKzsgKM8qS2wqXxqvpfT3p4U3+LH2IUyXiHlkmvlBMcNM02MltBdyRmQ==",
10738
-          "requires": {
10739
-            "bowser": "2.7.0",
10740
-            "js-md5": "0.7.3",
10741
-            "postis": "2.2.0"
10742
-          }
10743
-        },
10744
-        "js-md5": {
10745
-          "version": "0.7.3",
10746
-          "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz",
10747
-          "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
10748
-        },
10749
         "uuid": {
10802
         "uuid": {
10750
           "version": "8.1.0",
10803
           "version": "8.1.0",
10751
           "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz",
10804
           "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz",
15207
         },
15260
         },
15208
         "kind-of": {
15261
         "kind-of": {
15209
           "version": "6.0.2",
15262
           "version": "6.0.2",
15210
-          "resolved": ""
15263
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
15264
+          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
15211
         }
15265
         }
15212
       }
15266
       }
15213
     },
15267
     },

+ 2
- 2
package.json View File

32
     "@atlaskit/theme": "7.0.2",
32
     "@atlaskit/theme": "7.0.2",
33
     "@atlaskit/toggle": "5.0.14",
33
     "@atlaskit/toggle": "5.0.14",
34
     "@atlaskit/tooltip": "12.1.13",
34
     "@atlaskit/tooltip": "12.1.13",
35
-    "@jitsi/js-utils": "1.0.1",
35
+    "@jitsi/js-utils": "1.0.2",
36
     "@microsoft/microsoft-graph-client": "1.1.0",
36
     "@microsoft/microsoft-graph-client": "1.1.0",
37
     "@react-native-community/async-storage": "1.3.4",
37
     "@react-native-community/async-storage": "1.3.4",
38
     "@react-native-community/google-signin": "3.0.1",
38
     "@react-native-community/google-signin": "3.0.1",
56
     "jquery-i18next": "1.2.1",
56
     "jquery-i18next": "1.2.1",
57
     "js-md5": "0.6.1",
57
     "js-md5": "0.6.1",
58
     "jwt-decode": "2.2.0",
58
     "jwt-decode": "2.2.0",
59
-    "lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#a0b8a9c862f46b0e743b8a750c2160acc473ed49",
59
+    "lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#b881ccbcc70cd06cbe1b81fb39178f3ff7803921",
60
     "libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
60
     "libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
61
     "lodash": "4.17.19",
61
     "lodash": "4.17.19",
62
     "moment": "2.19.4",
62
     "moment": "2.19.4",

+ 5
- 0
react/features/base/jitsi-local-storage/logger.js View File

1
+// @flow
2
+
3
+import { getLogger } from '../logging/functions';
4
+
5
+export default getLogger('features/base/jitsi-local-storage');

+ 45
- 0
react/features/base/jitsi-local-storage/setup.web.js View File

1
+// @flow
2
+
3
+import { jitsiLocalStorage } from '@jitsi/js-utils/jitsi-local-storage';
4
+
5
+import { parseURLParams } from '../util/parseURLParams';
6
+
7
+import logger from './logger';
8
+
9
+declare var APP: Object;
10
+
11
+/**
12
+ * Handles changes of the fake local storage.
13
+ *
14
+ * @returns {void}
15
+ */
16
+function onFakeLocalStorageChanged() {
17
+    APP.API.notifyLocalStorageChanged(jitsiLocalStorage.serialize());
18
+}
19
+
20
+/**
21
+ * Performs initial setup of the jitsiLocalStorage.
22
+ *
23
+ * @returns {void}
24
+ */
25
+function setupJitsiLocalStorage() {
26
+    if (jitsiLocalStorage.isLocalStorageDisabled()) {
27
+        const urlParams = parseURLParams(window.location);
28
+
29
+        try {
30
+            const localStorageContent = JSON.parse(urlParams['appData.localStorageContent']);
31
+
32
+            if (typeof localStorageContent === 'object') {
33
+                Object.keys(localStorageContent).forEach(key => {
34
+                    jitsiLocalStorage.setItem(key, localStorageContent[key]);
35
+                });
36
+            }
37
+        } catch (error) {
38
+            logger.error('Can\'t parse localStorageContent.', error);
39
+        }
40
+
41
+        jitsiLocalStorage.on('changed', onFakeLocalStorageChanged);
42
+    }
43
+}
44
+
45
+setupJitsiLocalStorage();

+ 3
- 1
react/features/base/lib-jitsi-meet/actions.js View File

1
 /* @flow */
1
 /* @flow */
2
 
2
 
3
+import { jitsiLocalStorage } from '@jitsi/js-utils';
3
 import type { Dispatch } from 'redux';
4
 import type { Dispatch } from 'redux';
4
 
5
 
5
 import { isOnline } from '../net-info/selectors';
6
 import { isOnline } from '../net-info/selectors';
51
         try {
52
         try {
52
             JitsiMeetJS.init({
53
             JitsiMeetJS.init({
53
                 enableAnalyticsLogging: isAnalyticsEnabled(getState),
54
                 enableAnalyticsLogging: isAnalyticsEnabled(getState),
54
-                ...config
55
+                ...config,
56
+                externalStorage: jitsiLocalStorage.isLocalStorageDisabled() ? jitsiLocalStorage : undefined
55
             });
57
             });
56
             JitsiMeetJS.setNetworkInfo({
58
             JitsiMeetJS.setNetworkInfo({
57
                 isOnline: isOnline(state)
59
                 isOnline: isOnline(state)

+ 1
- 1
react/features/base/util/uri.js View File

546
 
546
 
547
     let { hash } = url;
547
     let { hash } = url;
548
 
548
 
549
-    for (const urlPrefix of [ 'config', 'interfaceConfig', 'devices', 'userInfo' ]) {
549
+    for (const urlPrefix of [ 'config', 'interfaceConfig', 'devices', 'userInfo', 'appData' ]) {
550
         const urlParamsArray
550
         const urlParamsArray
551
             = _objectToURLParamsArray(
551
             = _objectToURLParamsArray(
552
                 o[`${urlPrefix}Overwrite`]
552
                 o[`${urlPrefix}Overwrite`]

Loading…
Cancel
Save