Quellcode durchsuchen

feat(external-local-storage): support

master
Hristo Terezov vor 5 Jahren
Ursprung
Commit
dc6d3daef7

+ 5
- 0
app.js Datei anzeigen

@@ -6,6 +6,11 @@ import 'jQuery-Impromptu';
6 6
 
7 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 14
 import conference from './conference';
10 15
 import API from './modules/API';
11 16
 import UI from './modules/UI/UI';

+ 13
- 0
modules/API/API.js Datei anzeigen

@@ -1026,6 +1026,19 @@ class API {
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 1043
      * Disposes the allocated resources.
1031 1044
      *

+ 11
- 1
modules/API/external/external_api.js Datei anzeigen

@@ -1,3 +1,4 @@
1
+import { jitsiLocalStorage } from '@jitsi/js-utils/jitsi-local-storage';
1 2
 import EventEmitter from 'events';
2 3
 
3 4
 import { urlObjectToString } from '../../../react/features/base/util/uri';
@@ -268,6 +269,7 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
268 269
             userInfo,
269 270
             e2eeKey
270 271
         } = parseArguments(args);
272
+        const localStorageContent = jitsiLocalStorage.getItem('jitsiLocalStorage');
271 273
 
272 274
         this._parentNode = parentNode;
273 275
         this._url = generateURL(domain, {
@@ -277,7 +279,10 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
277 279
             noSSL,
278 280
             roomName,
279 281
             devices,
280
-            userInfo
282
+            userInfo,
283
+            appData: {
284
+                localStorageContent
285
+            }
281 286
         });
282 287
         this._createIFrame(height, width, onload);
283 288
         this._transport = new Transport({
@@ -526,6 +531,11 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
526 531
             case 'video-quality-changed':
527 532
                 this._videoQuality = data.videoQuality;
528 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 541
             const eventName = events[name];

+ 144
- 90
package-lock.json Datei anzeigen

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

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

+ 5
- 0
react/features/base/jitsi-local-storage/logger.js Datei anzeigen

@@ -0,0 +1,5 @@
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 Datei anzeigen

@@ -0,0 +1,45 @@
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 Datei anzeigen

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

+ 1
- 1
react/features/base/util/uri.js Datei anzeigen

@@ -546,7 +546,7 @@ export function urlObjectToString(o: Object): ?string {
546 546
 
547 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 550
         const urlParamsArray
551 551
             = _objectToURLParamsArray(
552 552
                 o[`${urlPrefix}Overwrite`]

Laden…
Abbrechen
Speichern