@openreplay/tracker 14.0.9-beta.1 → 14.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/cjs/app/index.js +11 -8
- package/cjs/index.js +1 -1
- package/lib/app/index.js +11 -8
- package/lib/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# 14.0.9
|
|
2
|
+
|
|
3
|
+
- more stable crossdomain iframe tracking (refactored child/parent process discovery)
|
|
4
|
+
- checks for bad start error
|
|
5
|
+
|
|
1
6
|
# 14.0.8
|
|
2
7
|
|
|
3
8
|
- use separate library to handle network requests ([@openreplay/network-proxy](https://www.npmjs.com/package/@openreplay/network-proxy))
|
package/cjs/app/index.js
CHANGED
|
@@ -96,7 +96,7 @@ class App {
|
|
|
96
96
|
this.stopCallbacks = [];
|
|
97
97
|
this.commitCallbacks = [];
|
|
98
98
|
this.activityState = ActivityState.NotActive;
|
|
99
|
-
this.version = '14.0.9
|
|
99
|
+
this.version = '14.0.9'; // TODO: version compatability check inside each plugin.
|
|
100
100
|
this.socketMode = false;
|
|
101
101
|
this.compressionThreshold = 24 * 1000;
|
|
102
102
|
this.bc = null;
|
|
@@ -126,6 +126,8 @@ class App {
|
|
|
126
126
|
* */
|
|
127
127
|
let crossdomainFrameCount = 0;
|
|
128
128
|
const catchIframeMessage = (event) => {
|
|
129
|
+
if (!this.active())
|
|
130
|
+
return;
|
|
129
131
|
const { data } = event;
|
|
130
132
|
if (!data)
|
|
131
133
|
return;
|
|
@@ -211,9 +213,6 @@ class App {
|
|
|
211
213
|
}
|
|
212
214
|
};
|
|
213
215
|
window.addEventListener('message', catchIframeMessage);
|
|
214
|
-
this.attachStopCallback(() => {
|
|
215
|
-
window.removeEventListener('message', catchIframeMessage);
|
|
216
|
-
});
|
|
217
216
|
}
|
|
218
217
|
};
|
|
219
218
|
this.signalIframeTracker = () => {
|
|
@@ -353,6 +352,8 @@ class App {
|
|
|
353
352
|
this.initWorker();
|
|
354
353
|
const thisTab = this.session.getTabId();
|
|
355
354
|
const catchParentMessage = (event) => {
|
|
355
|
+
if (!this.active())
|
|
356
|
+
return;
|
|
356
357
|
const { data } = event;
|
|
357
358
|
if (!data)
|
|
358
359
|
return;
|
|
@@ -369,9 +370,6 @@ class App {
|
|
|
369
370
|
}
|
|
370
371
|
};
|
|
371
372
|
window.addEventListener('message', catchParentMessage);
|
|
372
|
-
this.attachStopCallback(() => {
|
|
373
|
-
window.removeEventListener('message', catchParentMessage);
|
|
374
|
-
});
|
|
375
373
|
if (this.bc !== null) {
|
|
376
374
|
this.bc.postMessage({
|
|
377
375
|
line: proto.ask,
|
|
@@ -573,7 +571,6 @@ class App {
|
|
|
573
571
|
(0, utils_js_1.requestIdleCb)(() => {
|
|
574
572
|
this.messages.unshift((0, messages_gen_js_1.TabData)(this.session.getTabId()));
|
|
575
573
|
this.messages.unshift((0, messages_gen_js_1.Timestamp)(this.timestamp()));
|
|
576
|
-
// why I need to add opt chaining?
|
|
577
574
|
this.worker?.postMessage(this.messages);
|
|
578
575
|
this.commitCallbacks.forEach((cb) => cb(this.messages));
|
|
579
576
|
this.messages.length = 0;
|
|
@@ -1187,6 +1184,11 @@ class App {
|
|
|
1187
1184
|
catch (reason) {
|
|
1188
1185
|
this.stop();
|
|
1189
1186
|
this.session.reset();
|
|
1187
|
+
if (!reason) {
|
|
1188
|
+
console.error('Unknown error during start');
|
|
1189
|
+
this.signalError('Unknown error', []);
|
|
1190
|
+
return UnsuccessfulStart('Unknown error');
|
|
1191
|
+
}
|
|
1190
1192
|
if (reason === CANCELED) {
|
|
1191
1193
|
this.signalError(CANCELED, []);
|
|
1192
1194
|
return UnsuccessfulStart(CANCELED);
|
|
@@ -1304,6 +1306,7 @@ class App {
|
|
|
1304
1306
|
this.worker.postMessage('stop');
|
|
1305
1307
|
}
|
|
1306
1308
|
this.canvasRecorder?.clear();
|
|
1309
|
+
this.messages.length = 0;
|
|
1307
1310
|
}
|
|
1308
1311
|
finally {
|
|
1309
1312
|
this.activityState = ActivityState.NotActive;
|
package/cjs/index.js
CHANGED
|
@@ -98,7 +98,7 @@ class API {
|
|
|
98
98
|
const orig = this.options.ingestPoint || index_js_1.DEFAULT_INGEST_POINT;
|
|
99
99
|
req.open('POST', orig + '/v1/web/not-started');
|
|
100
100
|
req.send(JSON.stringify({
|
|
101
|
-
trackerVersion: '14.0.9
|
|
101
|
+
trackerVersion: '14.0.9',
|
|
102
102
|
projectKey: this.options.projectKey,
|
|
103
103
|
doNotTrack,
|
|
104
104
|
reason: missingApi.length ? `missing api: ${missingApi.join(',')}` : reason,
|
package/lib/app/index.js
CHANGED
|
@@ -67,7 +67,7 @@ export default class App {
|
|
|
67
67
|
this.stopCallbacks = [];
|
|
68
68
|
this.commitCallbacks = [];
|
|
69
69
|
this.activityState = ActivityState.NotActive;
|
|
70
|
-
this.version = '14.0.9
|
|
70
|
+
this.version = '14.0.9'; // TODO: version compatability check inside each plugin.
|
|
71
71
|
this.socketMode = false;
|
|
72
72
|
this.compressionThreshold = 24 * 1000;
|
|
73
73
|
this.bc = null;
|
|
@@ -97,6 +97,8 @@ export default class App {
|
|
|
97
97
|
* */
|
|
98
98
|
let crossdomainFrameCount = 0;
|
|
99
99
|
const catchIframeMessage = (event) => {
|
|
100
|
+
if (!this.active())
|
|
101
|
+
return;
|
|
100
102
|
const { data } = event;
|
|
101
103
|
if (!data)
|
|
102
104
|
return;
|
|
@@ -182,9 +184,6 @@ export default class App {
|
|
|
182
184
|
}
|
|
183
185
|
};
|
|
184
186
|
window.addEventListener('message', catchIframeMessage);
|
|
185
|
-
this.attachStopCallback(() => {
|
|
186
|
-
window.removeEventListener('message', catchIframeMessage);
|
|
187
|
-
});
|
|
188
187
|
}
|
|
189
188
|
};
|
|
190
189
|
this.signalIframeTracker = () => {
|
|
@@ -324,6 +323,8 @@ export default class App {
|
|
|
324
323
|
this.initWorker();
|
|
325
324
|
const thisTab = this.session.getTabId();
|
|
326
325
|
const catchParentMessage = (event) => {
|
|
326
|
+
if (!this.active())
|
|
327
|
+
return;
|
|
327
328
|
const { data } = event;
|
|
328
329
|
if (!data)
|
|
329
330
|
return;
|
|
@@ -340,9 +341,6 @@ export default class App {
|
|
|
340
341
|
}
|
|
341
342
|
};
|
|
342
343
|
window.addEventListener('message', catchParentMessage);
|
|
343
|
-
this.attachStopCallback(() => {
|
|
344
|
-
window.removeEventListener('message', catchParentMessage);
|
|
345
|
-
});
|
|
346
344
|
if (this.bc !== null) {
|
|
347
345
|
this.bc.postMessage({
|
|
348
346
|
line: proto.ask,
|
|
@@ -544,7 +542,6 @@ export default class App {
|
|
|
544
542
|
requestIdleCb(() => {
|
|
545
543
|
this.messages.unshift(TabData(this.session.getTabId()));
|
|
546
544
|
this.messages.unshift(Timestamp(this.timestamp()));
|
|
547
|
-
// why I need to add opt chaining?
|
|
548
545
|
this.worker?.postMessage(this.messages);
|
|
549
546
|
this.commitCallbacks.forEach((cb) => cb(this.messages));
|
|
550
547
|
this.messages.length = 0;
|
|
@@ -1158,6 +1155,11 @@ export default class App {
|
|
|
1158
1155
|
catch (reason) {
|
|
1159
1156
|
this.stop();
|
|
1160
1157
|
this.session.reset();
|
|
1158
|
+
if (!reason) {
|
|
1159
|
+
console.error('Unknown error during start');
|
|
1160
|
+
this.signalError('Unknown error', []);
|
|
1161
|
+
return UnsuccessfulStart('Unknown error');
|
|
1162
|
+
}
|
|
1161
1163
|
if (reason === CANCELED) {
|
|
1162
1164
|
this.signalError(CANCELED, []);
|
|
1163
1165
|
return UnsuccessfulStart(CANCELED);
|
|
@@ -1275,6 +1277,7 @@ export default class App {
|
|
|
1275
1277
|
this.worker.postMessage('stop');
|
|
1276
1278
|
}
|
|
1277
1279
|
this.canvasRecorder?.clear();
|
|
1280
|
+
this.messages.length = 0;
|
|
1278
1281
|
}
|
|
1279
1282
|
finally {
|
|
1280
1283
|
this.activityState = ActivityState.NotActive;
|
package/lib/index.js
CHANGED
|
@@ -67,7 +67,7 @@ export default class API {
|
|
|
67
67
|
const orig = this.options.ingestPoint || DEFAULT_INGEST_POINT;
|
|
68
68
|
req.open('POST', orig + '/v1/web/not-started');
|
|
69
69
|
req.send(JSON.stringify({
|
|
70
|
-
trackerVersion: '14.0.9
|
|
70
|
+
trackerVersion: '14.0.9',
|
|
71
71
|
projectKey: this.options.projectKey,
|
|
72
72
|
doNotTrack,
|
|
73
73
|
reason: missingApi.length ? `missing api: ${missingApi.join(',')}` : reason,
|