@microsoft/1ds-post-js 3.1.10 → 3.1.11
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/README.md +123 -5
- package/bundle/{ms.post-3.1.10.gbl.js → ms.post-3.1.11.gbl.js} +163 -86
- package/bundle/ms.post-3.1.11.gbl.js.map +1 -0
- package/bundle/ms.post-3.1.11.gbl.min.js +7 -0
- package/bundle/ms.post-3.1.11.gbl.min.js.map +1 -0
- package/bundle/ms.post-3.1.11.integrity.json +46 -0
- package/bundle/{ms.post-3.1.10.js → ms.post-3.1.11.js} +163 -86
- package/bundle/ms.post-3.1.11.js.map +1 -0
- package/bundle/ms.post-3.1.11.min.js +7 -0
- package/bundle/ms.post-3.1.11.min.js.map +1 -0
- package/bundle/ms.post.gbl.js +162 -85
- package/bundle/ms.post.gbl.js.map +1 -1
- package/bundle/ms.post.gbl.min.js +2 -2
- package/bundle/ms.post.gbl.min.js.map +1 -1
- package/bundle/ms.post.integrity.json +17 -17
- package/bundle/ms.post.js +162 -85
- package/bundle/ms.post.js.map +1 -1
- package/bundle/ms.post.min.js +2 -2
- package/bundle/ms.post.min.js.map +1 -1
- package/dist/ms.post.js +101 -47
- package/dist/ms.post.js.map +1 -1
- package/dist/ms.post.min.js +2 -2
- package/dist/ms.post.min.js.map +1 -1
- package/dist-esm/src/BatchNotificationActions.js +1 -1
- package/dist-esm/src/ClockSkewManager.js +1 -1
- package/dist-esm/src/Constants.d.ts +1 -0
- package/dist-esm/src/Constants.js +2 -1
- package/dist-esm/src/Constants.js.map +1 -1
- package/dist-esm/src/DataModels.d.ts +49 -0
- package/dist-esm/src/DataModels.js +1 -1
- package/dist-esm/src/EventBatch.js +1 -1
- package/dist-esm/src/HttpManager.d.ts +1 -1
- package/dist-esm/src/HttpManager.js +63 -24
- package/dist-esm/src/HttpManager.js.map +1 -1
- package/dist-esm/src/Index.js +1 -1
- package/dist-esm/src/KillSwitch.js +1 -1
- package/dist-esm/src/PostChannel.js +51 -28
- package/dist-esm/src/PostChannel.js.map +1 -1
- package/dist-esm/src/RetryPolicy.js +1 -1
- package/dist-esm/src/Serializer.js +1 -1
- package/dist-esm/src/typings/XDomainRequest.js +1 -1
- package/package.json +2 -2
- package/src/Constants.ts +1 -0
- package/src/DataModels.ts +62 -1
- package/src/HttpManager.ts +67 -22
- package/src/PostChannel.ts +56 -28
- package/bundle/ms.post-3.1.10.gbl.js.map +0 -1
- package/bundle/ms.post-3.1.10.gbl.min.js +0 -7
- package/bundle/ms.post-3.1.10.gbl.min.js.map +0 -1
- package/bundle/ms.post-3.1.10.integrity.json +0 -46
- package/bundle/ms.post-3.1.10.js.map +0 -1
- package/bundle/ms.post-3.1.10.min.js +0 -7
- package/bundle/ms.post-3.1.10.min.js.map +0 -1
package/dist/ms.post.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* 1DS JS SDK POST plugin, 3.1.
|
|
2
|
+
* 1DS JS SDK POST plugin, 3.1.11
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
* (Microsoft Internal Only)
|
|
5
5
|
*/
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
var strUploadTime = "upload-time";
|
|
39
39
|
var strApiKey = "apikey";
|
|
40
40
|
var strMsaDeviceTicket = "AuthMsaDeviceTicket";
|
|
41
|
+
var strNoResponseBody = "NoResponseBody";
|
|
41
42
|
var strMsfpc = "msfpc";
|
|
42
43
|
|
|
43
44
|
function _getEventMsfpc(theEvent) {
|
|
@@ -458,6 +459,8 @@
|
|
|
458
459
|
}());
|
|
459
460
|
|
|
460
461
|
var _a;
|
|
462
|
+
var strSendAttempt = "sendAttempt";
|
|
463
|
+
var _noResponseQs = "&" + strNoResponseBody + "=true";
|
|
461
464
|
var _eventActionMap = (_a = {},
|
|
462
465
|
_a[1 ] = strRequeue,
|
|
463
466
|
_a[100 ] = strRequeue,
|
|
@@ -510,7 +513,7 @@
|
|
|
510
513
|
}
|
|
511
514
|
}
|
|
512
515
|
var HttpManager = /** @class */ (function () {
|
|
513
|
-
function HttpManager(maxEventsPerBatch, maxConnections,
|
|
516
|
+
function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions) {
|
|
514
517
|
this._responseHandlers = [];
|
|
515
518
|
var _urlString = "?cors=true&" + strContentTypeHeader.toLowerCase() + "=" + defaultContentType;
|
|
516
519
|
var _killSwitch = new KillSwitch();
|
|
@@ -530,6 +533,8 @@
|
|
|
530
533
|
var _cookieMgr;
|
|
531
534
|
var _isUnloading = false;
|
|
532
535
|
var _useHeaders = false;
|
|
536
|
+
var _xhrTimeout;
|
|
537
|
+
var _disableXhrSync;
|
|
533
538
|
dynamicProto__default(HttpManager, this, function (_self) {
|
|
534
539
|
var _sendCredentials = true;
|
|
535
540
|
_self.initialize = function (endpointUrl, core, postChannel, httpInterface, channelConfig) {
|
|
@@ -549,9 +554,13 @@
|
|
|
549
554
|
if (!_1dsCoreJs.isUndefined(channelConfig.enableCompoundKey)) {
|
|
550
555
|
enableCompoundKey = !!channelConfig.enableCompoundKey;
|
|
551
556
|
}
|
|
557
|
+
_xhrTimeout = channelConfig.xhrTimeout;
|
|
558
|
+
_disableXhrSync = channelConfig.disableXhrSync;
|
|
552
559
|
_useBeacons = !_1dsCoreJs.isReactNative();
|
|
553
560
|
_serializer = new Serializer(_core, valueSanitizer, stringifyObjects, enableCompoundKey);
|
|
554
561
|
var syncHttpInterface = httpInterface;
|
|
562
|
+
var beaconHttpInterface = channelConfig.alwaysUseXhrOverride ? httpInterface : null;
|
|
563
|
+
var fetchSyncHttpInterface = channelConfig.alwaysUseXhrOverride ? httpInterface : null;
|
|
555
564
|
if (!httpInterface) {
|
|
556
565
|
_customHttpInterface = false;
|
|
557
566
|
var location_1 = _1dsCoreJs.getLocation();
|
|
@@ -583,8 +592,8 @@
|
|
|
583
592
|
_sendInterfaces = (_a = {},
|
|
584
593
|
_a[0 ] = httpInterface,
|
|
585
594
|
_a[1 ] = syncHttpInterface || _getSenderInterface([1 , 2 , 3 ], true),
|
|
586
|
-
_a[2 ] = _getSenderInterface([3 , 2
|
|
587
|
-
_a[3 ] = _getSenderInterface([2 , 3
|
|
595
|
+
_a[2 ] = beaconHttpInterface || _getSenderInterface([3 , 2 ], true) || syncHttpInterface || _getSenderInterface([1 ], true),
|
|
596
|
+
_a[3 ] = fetchSyncHttpInterface || _getSenderInterface([2 , 3 ], true) || syncHttpInterface || _getSenderInterface([1 ], true),
|
|
588
597
|
_a);
|
|
589
598
|
};
|
|
590
599
|
function _getSenderInterface(transports, syncSupport) {
|
|
@@ -624,6 +633,9 @@
|
|
|
624
633
|
function _xdrSendPost(payload, oncomplete, sync) {
|
|
625
634
|
var xdr = new XDomainRequest();
|
|
626
635
|
xdr.open(Method, payload.urlString);
|
|
636
|
+
if (payload.timeout) {
|
|
637
|
+
xdr.timeout = payload.timeout;
|
|
638
|
+
}
|
|
627
639
|
xdr.onload = function () {
|
|
628
640
|
var response = _getResponseText(xdr);
|
|
629
641
|
_doOnComplete(oncomplete, 200, {}, response);
|
|
@@ -647,6 +659,7 @@
|
|
|
647
659
|
}
|
|
648
660
|
function _fetchSendPost(payload, oncomplete, sync) {
|
|
649
661
|
var _a;
|
|
662
|
+
var theUrl = payload.urlString;
|
|
650
663
|
var ignoreResponse = false;
|
|
651
664
|
var responseHandled = false;
|
|
652
665
|
var requestInit = (_a = {
|
|
@@ -659,6 +672,7 @@
|
|
|
659
672
|
requestInit.keepalive = true;
|
|
660
673
|
if (payload._sendReason === 2 ) {
|
|
661
674
|
ignoreResponse = true;
|
|
675
|
+
theUrl += _noResponseQs;
|
|
662
676
|
}
|
|
663
677
|
}
|
|
664
678
|
if (_sendCredentials) {
|
|
@@ -667,7 +681,7 @@
|
|
|
667
681
|
if (payload.headers && _1dsCoreJs.objKeys(payload.headers).length > 0) {
|
|
668
682
|
requestInit.headers = payload.headers;
|
|
669
683
|
}
|
|
670
|
-
fetch(
|
|
684
|
+
fetch(theUrl, requestInit).then(function (response) {
|
|
671
685
|
var headerMap = {};
|
|
672
686
|
var responseText = "";
|
|
673
687
|
if (response.headers) {
|
|
@@ -695,8 +709,17 @@
|
|
|
695
709
|
responseHandled = true;
|
|
696
710
|
_doOnComplete(oncomplete, 200, {});
|
|
697
711
|
}
|
|
712
|
+
if (!responseHandled && payload.timeout > 0) {
|
|
713
|
+
_postManager._setTimeoutOverride(function () {
|
|
714
|
+
if (!responseHandled) {
|
|
715
|
+
responseHandled = true;
|
|
716
|
+
_doOnComplete(oncomplete, 500, {});
|
|
717
|
+
}
|
|
718
|
+
}, payload.timeout);
|
|
719
|
+
}
|
|
698
720
|
}
|
|
699
721
|
function _xhrSendPost(payload, oncomplete, sync) {
|
|
722
|
+
var theUrl = payload.urlString;
|
|
700
723
|
function _appendHeader(theHeaders, xhr, name) {
|
|
701
724
|
if (!theHeaders[name] && xhr && xhr.getResponseHeader) {
|
|
702
725
|
var value = xhr.getResponseHeader(name);
|
|
@@ -721,22 +744,25 @@
|
|
|
721
744
|
function xhrComplete(xhr, responseTxt) {
|
|
722
745
|
_doOnComplete(oncomplete, xhr.status, _getAllResponseHeaders(xhr), responseTxt);
|
|
723
746
|
}
|
|
724
|
-
|
|
747
|
+
if (sync && payload.disableXhrSync) {
|
|
748
|
+
sync = false;
|
|
749
|
+
}
|
|
750
|
+
var xhrRequest = _1dsCoreJs.openXhr(Method, theUrl, _sendCredentials, true, sync, payload.timeout);
|
|
725
751
|
_1dsCoreJs.objForEachKey(payload.headers, function (name, value) {
|
|
726
|
-
|
|
752
|
+
xhrRequest.setRequestHeader(name, value);
|
|
727
753
|
});
|
|
728
|
-
|
|
729
|
-
var response = _getResponseText(
|
|
730
|
-
xhrComplete(
|
|
754
|
+
xhrRequest.onload = function () {
|
|
755
|
+
var response = _getResponseText(xhrRequest);
|
|
756
|
+
xhrComplete(xhrRequest, response);
|
|
731
757
|
_handleCollectorResponse(response);
|
|
732
758
|
};
|
|
733
|
-
|
|
734
|
-
xhrComplete(
|
|
759
|
+
xhrRequest.onerror = function () {
|
|
760
|
+
xhrComplete(xhrRequest);
|
|
735
761
|
};
|
|
736
|
-
|
|
737
|
-
xhrComplete(
|
|
762
|
+
xhrRequest.ontimeout = function () {
|
|
763
|
+
xhrComplete(xhrRequest);
|
|
738
764
|
};
|
|
739
|
-
|
|
765
|
+
xhrRequest.send(payload.data);
|
|
740
766
|
}
|
|
741
767
|
function _doOnComplete(oncomplete, status, headers, response) {
|
|
742
768
|
try {
|
|
@@ -750,16 +776,17 @@
|
|
|
750
776
|
var internalPayloadData = payload;
|
|
751
777
|
var status = 200;
|
|
752
778
|
var thePayload = internalPayloadData._thePayload;
|
|
779
|
+
var theUrl = payload.urlString + _noResponseQs;
|
|
753
780
|
try {
|
|
754
781
|
var nav_1 = _1dsCoreJs.getNavigator();
|
|
755
|
-
if (!nav_1.sendBeacon(
|
|
782
|
+
if (!nav_1.sendBeacon(theUrl, payload.data)) {
|
|
756
783
|
if (thePayload) {
|
|
757
784
|
var droppedBatches_1 = [];
|
|
758
785
|
_1dsCoreJs.arrForEach(thePayload.batches, function (theBatch) {
|
|
759
786
|
if (droppedBatches_1 && theBatch && theBatch.count() > 0) {
|
|
760
787
|
var theEvents = theBatch.events();
|
|
761
788
|
for (var lp = 0; lp < theEvents.length; lp++) {
|
|
762
|
-
if (!nav_1.sendBeacon(
|
|
789
|
+
if (!nav_1.sendBeacon(theUrl, _serializer.getEventBlob(theEvents[lp]))) {
|
|
763
790
|
droppedBatches_1.push(theBatch.split(lp));
|
|
764
791
|
break;
|
|
765
792
|
}
|
|
@@ -1002,7 +1029,6 @@
|
|
|
1002
1029
|
var requestDetails_1 = _buildRequestDetails(thePayload, useHeaders_1);
|
|
1003
1030
|
useHeaders_1 = useHeaders_1 || requestDetails_1.useHdrs;
|
|
1004
1031
|
var sendEventStart_1 = _1dsCoreJs.getTime();
|
|
1005
|
-
var strSendAttempt_1 = "sendAttempt";
|
|
1006
1032
|
_1dsCoreJs.doPerf(_core, function () { return "HttpManager:_doPayloadSend"; }, function () {
|
|
1007
1033
|
for (var batchLp = 0; batchLp < thePayload.batches.length; batchLp++) {
|
|
1008
1034
|
var theBatch = thePayload.batches[batchLp];
|
|
@@ -1015,7 +1041,7 @@
|
|
|
1015
1041
|
_setTimingValue(timings, "serializationStart", serializationStart);
|
|
1016
1042
|
_setTimingValue(timings, "serializationCompleted", serializationCompleted);
|
|
1017
1043
|
}
|
|
1018
|
-
telemetryItem[
|
|
1044
|
+
telemetryItem[strSendAttempt] > 0 ? telemetryItem[strSendAttempt]++ : telemetryItem[strSendAttempt] = 1;
|
|
1019
1045
|
}
|
|
1020
1046
|
}
|
|
1021
1047
|
_sendBatchesNotification(thePayload.batches, (1000 + (sendReason || 0 )), thePayload.sendType, true);
|
|
@@ -1024,8 +1050,12 @@
|
|
|
1024
1050
|
urlString: requestDetails_1.url,
|
|
1025
1051
|
headers: requestDetails_1.hdrs,
|
|
1026
1052
|
_thePayload: thePayload,
|
|
1027
|
-
_sendReason: sendReason
|
|
1053
|
+
_sendReason: sendReason,
|
|
1054
|
+
timeout: _xhrTimeout
|
|
1028
1055
|
};
|
|
1056
|
+
if (!_1dsCoreJs.isUndefined(_disableXhrSync)) {
|
|
1057
|
+
orgPayloadData.disableXhrSync = !!_disableXhrSync;
|
|
1058
|
+
}
|
|
1029
1059
|
if (useHeaders_1) {
|
|
1030
1060
|
if (!_hasHeader(orgPayloadData.headers, strCacheControl)) {
|
|
1031
1061
|
orgPayloadData.headers[strCacheControl] = defaultCacheControl;
|
|
@@ -1063,7 +1093,9 @@
|
|
|
1063
1093
|
var hookData_1 = {
|
|
1064
1094
|
data: orgPayloadData.data,
|
|
1065
1095
|
urlString: orgPayloadData.urlString,
|
|
1066
|
-
headers: _1dsCoreJs.extend({}, orgPayloadData.headers)
|
|
1096
|
+
headers: _1dsCoreJs.extend({}, orgPayloadData.headers),
|
|
1097
|
+
timeout: orgPayloadData.timeout,
|
|
1098
|
+
disableXhrSync: orgPayloadData.disableXhrSync
|
|
1067
1099
|
};
|
|
1068
1100
|
var senderCalled_1 = false;
|
|
1069
1101
|
_1dsCoreJs.doPerf(_core, function () { return "HttpManager:_doPayloadSend.sendHook"; }, function () {
|
|
@@ -1128,7 +1160,7 @@
|
|
|
1128
1160
|
});
|
|
1129
1161
|
});
|
|
1130
1162
|
}
|
|
1131
|
-
if (status == 200) {
|
|
1163
|
+
if (status == 200 || status == 204) {
|
|
1132
1164
|
reason = 200 ;
|
|
1133
1165
|
return;
|
|
1134
1166
|
}
|
|
@@ -1141,7 +1173,7 @@
|
|
|
1141
1173
|
reason = 100 ;
|
|
1142
1174
|
var retryCount_1 = thePayload.retryCnt;
|
|
1143
1175
|
if (thePayload.sendType === 0 ) {
|
|
1144
|
-
if (retryCount_1 <
|
|
1176
|
+
if (retryCount_1 < maxRequestRetriesBeforeBackoff) {
|
|
1145
1177
|
isRetrying = true;
|
|
1146
1178
|
_doAction(function () {
|
|
1147
1179
|
if (thePayload.sendType === 0 ) {
|
|
@@ -1152,6 +1184,9 @@
|
|
|
1152
1184
|
}
|
|
1153
1185
|
else {
|
|
1154
1186
|
backOffTrans = true;
|
|
1187
|
+
if (_isUnloading) {
|
|
1188
|
+
reason = 8001 ;
|
|
1189
|
+
}
|
|
1155
1190
|
}
|
|
1156
1191
|
}
|
|
1157
1192
|
}
|
|
@@ -1297,19 +1332,22 @@
|
|
|
1297
1332
|
var MaxNumberEventPerBatch = 500;
|
|
1298
1333
|
var EventsDroppedAtOneTime = 20;
|
|
1299
1334
|
var MaxSendAttempts = 6;
|
|
1335
|
+
var MaxSyncUnloadSendAttempts = 2;
|
|
1300
1336
|
var MaxBackoffCount = 4;
|
|
1301
1337
|
var globalContext = _1dsCoreJs.isWindowObjectAvailable ? window : undefined;
|
|
1302
1338
|
var MaxConnections = 2;
|
|
1303
|
-
var
|
|
1339
|
+
var MaxRequestRetriesBeforeBackoff = 1;
|
|
1304
1340
|
var strEventsDiscarded = "eventsDiscarded";
|
|
1305
1341
|
var strOverrideInstrumentationKey = "overrideInstrumentationKey";
|
|
1342
|
+
var strMaxEventRetryAttempts = "maxEventRetryAttempts";
|
|
1343
|
+
var strMaxUnloadEventRetryAttempts = "maxUnloadEventRetryAttempts";
|
|
1306
1344
|
var PostChannel = /** @class */ (function (_super) {
|
|
1307
1345
|
applicationinsightsShims.__extendsFn(PostChannel, _super);
|
|
1308
1346
|
function PostChannel() {
|
|
1309
1347
|
var _this = _super.call(this) || this;
|
|
1310
1348
|
_this.identifier = "PostChannel";
|
|
1311
1349
|
_this.priority = 1011;
|
|
1312
|
-
_this.version = '3.1.
|
|
1350
|
+
_this.version = '3.1.11';
|
|
1313
1351
|
var _config;
|
|
1314
1352
|
var _isTeardownCalled = false;
|
|
1315
1353
|
var _flushCallbackQueue = [];
|
|
@@ -1334,11 +1372,13 @@
|
|
|
1334
1372
|
var _delayedBatchReason;
|
|
1335
1373
|
var _optimizeObject = true;
|
|
1336
1374
|
var _isPageUnloadTriggered = false;
|
|
1375
|
+
var _maxEventSendAttempts = MaxSendAttempts;
|
|
1376
|
+
var _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
|
|
1337
1377
|
dynamicProto__default(PostChannel, _this, function (_self, _base) {
|
|
1338
1378
|
_initializeProfiles();
|
|
1339
1379
|
_clearQueues();
|
|
1340
1380
|
_setAutoLimits();
|
|
1341
|
-
_httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections,
|
|
1381
|
+
_httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections, MaxRequestRetriesBeforeBackoff, {
|
|
1342
1382
|
requeue: _requeueEvents,
|
|
1343
1383
|
send: _sendingEvent,
|
|
1344
1384
|
sent: _eventsSentEvent,
|
|
@@ -1360,14 +1400,7 @@
|
|
|
1360
1400
|
_self._setTimeoutOverride = _config.setTimeoutOverride ? _config.setTimeoutOverride : setTimeout.bind(globalContext);
|
|
1361
1401
|
_self._clearTimeoutOverride = _config.clearTimeoutOverride ? _config.clearTimeoutOverride : clearTimeout.bind(globalContext);
|
|
1362
1402
|
_optimizeObject = !_config.disableOptimizeObj && _1dsCoreJs.isChromium();
|
|
1363
|
-
|
|
1364
|
-
extendedCore.getWParam = function () {
|
|
1365
|
-
var wparam = 0;
|
|
1366
|
-
if (_config.ignoreMc1Ms0CookieProcessing) {
|
|
1367
|
-
wparam = wparam | 2;
|
|
1368
|
-
}
|
|
1369
|
-
return wparam | existingGetWParamMethod();
|
|
1370
|
-
};
|
|
1403
|
+
_hookWParam(extendedCore);
|
|
1371
1404
|
if (_config.eventsLimitInMem > 0) {
|
|
1372
1405
|
_queueSizeLimit = _config.eventsLimitInMem;
|
|
1373
1406
|
}
|
|
@@ -1377,6 +1410,12 @@
|
|
|
1377
1410
|
if (_config.autoFlushEventsLimit > 0) {
|
|
1378
1411
|
_autoFlushEventsLimit = _config.autoFlushEventsLimit;
|
|
1379
1412
|
}
|
|
1413
|
+
if (_1dsCoreJs.isNumber(_config[strMaxEventRetryAttempts])) {
|
|
1414
|
+
_maxEventSendAttempts = _config[strMaxEventRetryAttempts];
|
|
1415
|
+
}
|
|
1416
|
+
if (_1dsCoreJs.isNumber(_config[strMaxUnloadEventRetryAttempts])) {
|
|
1417
|
+
_maxUnloadEventSendAttempts = _config[strMaxUnloadEventRetryAttempts];
|
|
1418
|
+
}
|
|
1380
1419
|
_setAutoLimits();
|
|
1381
1420
|
if (_config.httpXHROverride && _config.httpXHROverride.sendPOST) {
|
|
1382
1421
|
_xhrOverride = _config.httpXHROverride;
|
|
@@ -1389,21 +1428,10 @@
|
|
|
1389
1428
|
var endpointUrl = _config.overrideEndpointUrl ? _config.overrideEndpointUrl : coreConfig.endpointUrl;
|
|
1390
1429
|
_self._notificationManager = coreConfig.extensionConfig.NotificationManager;
|
|
1391
1430
|
_httpManager.initialize(endpointUrl, _self.core, _self, _xhrOverride, _config);
|
|
1392
|
-
function _handleUnloadEvents(evt) {
|
|
1393
|
-
var theEvt = evt || _1dsCoreJs.getWindow().event;
|
|
1394
|
-
if (theEvt.type !== "beforeunload") {
|
|
1395
|
-
_isPageUnloadTriggered = true;
|
|
1396
|
-
_httpManager.setUnloading(_isPageUnloadTriggered);
|
|
1397
|
-
}
|
|
1398
|
-
_releaseAllQueues(2 , 2 );
|
|
1399
|
-
}
|
|
1400
1431
|
var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents || [];
|
|
1401
1432
|
_1dsCoreJs.addPageUnloadEventListener(_handleUnloadEvents, excludePageUnloadEvents);
|
|
1402
1433
|
_1dsCoreJs.addPageHideEventListener(_handleUnloadEvents, excludePageUnloadEvents);
|
|
1403
|
-
_1dsCoreJs.addPageShowEventListener(
|
|
1404
|
-
_isPageUnloadTriggered = false;
|
|
1405
|
-
_httpManager.setUnloading(_isPageUnloadTriggered);
|
|
1406
|
-
}, coreConfig.disablePageShowEvents);
|
|
1434
|
+
_1dsCoreJs.addPageShowEventListener(_handleShowEvents, coreConfig.disablePageShowEvents);
|
|
1407
1435
|
_self.setInitialized(true);
|
|
1408
1436
|
}, function () { return ({ coreConfig: coreConfig, core: core, extensions: extensions }); });
|
|
1409
1437
|
};
|
|
@@ -1433,6 +1461,28 @@
|
|
|
1433
1461
|
}
|
|
1434
1462
|
_self.processNext(event, itemCtx);
|
|
1435
1463
|
};
|
|
1464
|
+
function _hookWParam(extendedCore) {
|
|
1465
|
+
var existingGetWParamMethod = extendedCore.getWParam;
|
|
1466
|
+
extendedCore.getWParam = function () {
|
|
1467
|
+
var wparam = 0;
|
|
1468
|
+
if (_config.ignoreMc1Ms0CookieProcessing) {
|
|
1469
|
+
wparam = wparam | 2;
|
|
1470
|
+
}
|
|
1471
|
+
return wparam | existingGetWParamMethod();
|
|
1472
|
+
};
|
|
1473
|
+
}
|
|
1474
|
+
function _handleUnloadEvents(evt) {
|
|
1475
|
+
var theEvt = evt || _1dsCoreJs.getWindow().event;
|
|
1476
|
+
if (theEvt.type !== "beforeunload") {
|
|
1477
|
+
_isPageUnloadTriggered = true;
|
|
1478
|
+
_httpManager.setUnloading(_isPageUnloadTriggered);
|
|
1479
|
+
}
|
|
1480
|
+
_releaseAllQueues(2 , 2 );
|
|
1481
|
+
}
|
|
1482
|
+
function _handleShowEvents(evt) {
|
|
1483
|
+
_isPageUnloadTriggered = false;
|
|
1484
|
+
_httpManager.setUnloading(_isPageUnloadTriggered);
|
|
1485
|
+
}
|
|
1436
1486
|
function _addEventToQueues(event, append) {
|
|
1437
1487
|
if (!event.sendAttempt) {
|
|
1438
1488
|
event.sendAttempt = 0;
|
|
@@ -1862,6 +1912,10 @@
|
|
|
1862
1912
|
}
|
|
1863
1913
|
function _requeueEvents(batches, reason) {
|
|
1864
1914
|
var droppedEvents = [];
|
|
1915
|
+
var maxSendAttempts = _maxEventSendAttempts;
|
|
1916
|
+
if (_isPageUnloadTriggered) {
|
|
1917
|
+
maxSendAttempts = _maxUnloadEventSendAttempts;
|
|
1918
|
+
}
|
|
1865
1919
|
_1dsCoreJs.arrForEach(batches, function (theBatch) {
|
|
1866
1920
|
if (theBatch && theBatch.count() > 0) {
|
|
1867
1921
|
_1dsCoreJs.arrForEach(theBatch.events(), function (theEvent) {
|
|
@@ -1870,7 +1924,7 @@
|
|
|
1870
1924
|
theEvent.latency = _1dsCoreJs.EventLatency.Immediate;
|
|
1871
1925
|
theEvent.sync = false;
|
|
1872
1926
|
}
|
|
1873
|
-
if (theEvent.sendAttempt <
|
|
1927
|
+
if (theEvent.sendAttempt < maxSendAttempts) {
|
|
1874
1928
|
_1dsCoreJs.setProcessTelemetryTimings(theEvent, _self.identifier);
|
|
1875
1929
|
_addEventToQueues(theEvent, false);
|
|
1876
1930
|
}
|