@atlaskit/react-ufo 5.5.2 → 5.5.3
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/AGENTS.md +5 -6
- package/CHANGELOG.md +9 -0
- package/dist/cjs/create-payload/index.js +3 -3
- package/dist/cjs/vc/vc-observer-new/index.js +1 -1
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +18 -23
- package/dist/es2019/create-payload/index.js +1 -1
- package/dist/es2019/vc/vc-observer-new/index.js +1 -1
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +2 -7
- package/dist/esm/create-payload/index.js +3 -3
- package/dist/esm/vc/vc-observer-new/index.js +1 -1
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +16 -21
- package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +0 -1
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +0 -1
- package/package.json +1 -7
package/AGENTS.md
CHANGED
|
@@ -255,12 +255,11 @@ sequenceDiagram
|
|
|
255
255
|
The package uses platform feature flags for gradual rollouts. Key flags are defined in
|
|
256
256
|
[`package.json`](./package.json):
|
|
257
257
|
|
|
258
|
-
| Flag
|
|
259
|
-
|
|
|
260
|
-
| `
|
|
261
|
-
| `
|
|
262
|
-
| `
|
|
263
|
-
| `platform_ufo_raw_data_thirdparty` | Third-party raw data behavior |
|
|
258
|
+
| Flag | Purpose |
|
|
259
|
+
| --------------------------------------- | ----------------------------- |
|
|
260
|
+
| `platform_ufo_segment_critical_metrics` | Segment-level metrics |
|
|
261
|
+
| `platform_ufo_enable_terminal_errors` | Terminal error tracking |
|
|
262
|
+
| `platform_ufo_raw_data_thirdparty` | Third-party raw data behavior |
|
|
264
263
|
|
|
265
264
|
## Testing
|
|
266
265
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atlaskit/ufo-interaction-ignore
|
|
2
2
|
|
|
3
|
+
## 5.5.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`89157b4835801`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/89157b4835801) -
|
|
8
|
+
Clean up platform_ufo_enable_vc_raw_data feature gate
|
|
9
|
+
- [`dd2a8188611e5`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/dd2a8188611e5) -
|
|
10
|
+
Clean up platform_ufo_reenable_3p_tracking feature gate, assuming always true
|
|
11
|
+
|
|
3
12
|
## 5.5.2
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -13,12 +13,12 @@ getPageLoadDetailedInteractionMetrics=function getPageLoadDetailedInteractionMet
|
|
|
13
13
|
'event:hostname':((_window$location=window.location)===null||_window$location===void 0?void 0:_window$location.hostname)||'unknown','event:product':config.product,'event:population':config.population,'event:schema':'1.0.0','event:sizeInKb':0,'event:source':{name:'react-ufo/web',version:(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)},'event:region':config.region||'unknown','experience:key':experimental?'custom.experimental-interaction-metrics':'custom.interaction-metrics','experience:name':newUFOName,// Include CPU usage monitoring data
|
|
14
14
|
'event:cpu:usage':(0,_machineUtilisation.createPressureStateReport)(interaction.start,interaction.end),'event:memory:usage':(0,_machineUtilisation.createMemoryStateReport)(interaction.start,interaction.end)},criticalPayloadCount!==undefined?{'ufo:multipayload':true,'ufo:criticalPayloadCount':criticalPayloadCount}:{}),{},{'ufo:pageVisibilityHiddenTimestamp':(0,_hiddenTiming.getEarliestHiddenTiming)(interaction.start,interaction.end),'ufo:wasPageHiddenBeforeInit':(0,_hiddenTiming.getHasHiddenTimingBeforeSetup)(),'ufo:isOpenedInBackground':(0,_hiddenTiming.isOpenedInBackground)(interaction.type),'ufo:isTabThrottled':(0,_hiddenTiming.isTabThrottled)(start,end),'ufo:pageVisibilityTimeline':(0,_hiddenTiming.getPageVisibilityTimeline)(start,end)},(0,_platformFeatureFlags.fg)('ufo_detect_aborting_interaction_during_ssr')?{'ufo:hasAbortingInteractionDuringSSR':(0,_vcObserverNew.getHasAbortingEventDuringSSR)()}:{}),(0,_getBrowserMetadata.getBrowserMetadataToLegacyFormat)()),batteryInfo),getSSRProperties(type)),getAssetsMetrics(interaction,pageLoadInteractionMetrics===null||pageLoadInteractionMetrics===void 0?void 0:pageLoadInteractionMetrics.SSRDoneTime)),getPPSMetrics(interaction)),paintMetrics),(0,_getNavigationMetrics.getNavigationMetricsToLegacyFormat)(type)),finalVCMetrics),experimentalMetrics),(_config$additionalPay=config.additionalPayloadData)===null||_config$additionalPay===void 0?void 0:_config$additionalPay.call(config,interaction)),getTracingContextData(interaction)),getStylesheetMetrics()),getErrorCounts(interaction)),getReactHydrationStats()),{},{interactionMetrics:_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({namePrefix:config.namePrefix||'',segmentPrefix:config.segmentPrefix||'',interactionId:interactionId,pageVisibilityAtTTI:pageVisibilityAtTTI,pageVisibilityAtTTAI:pageVisibilityAtTTAI,experimental__pageVisibilityAtTTI:moreAccuratePageVisibilityAtTTI,experimental__pageVisibilityAtTTAI:moreAccuratePageVisibilityAtTTAI,// raw interaction metrics
|
|
15
15
|
rate:rate,routeName:routeName,type:type,abortReason:abortReason,featureFlags:featureFlags,previousInteractionName:previousInteractionName,isPreviousInteractionAborted:isPreviousInteractionAborted,abortedByInteractionName:abortedByInteractionName,// performance
|
|
16
|
-
apdex:(0,_optimizeApdex.optimizeApdex)(interaction.apdex,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),end:Math.round(end)},interaction.end3p?{end3p:Math.round(interaction.end3p)}:{}),{},{start:Math.round(start),segments:(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)==='2.0.0'?segmentTree:(0,_utils.getOldSegmentsLabelStack)(segments,interaction.type),marks:(0,_optimizeMarks.optimizeMarks)(interaction.marks,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),customData:optimizeCustomData(interaction),reactProfilerTimings:(0,_optimizeReactProfilerTimings.optimizeReactProfilerTimings)(interaction.reactProfilerTimings,start,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),minorInteractions:interaction.minorInteractions},responsiveness?{responsiveness:responsiveness}:{}),labelStack),pageLoadInteractionMetrics),getDetailedInteractionMetrics(resourceTimings)),getPageLoadDetailedInteractionMetrics()),getBm3TrackerTimings(interaction)),{},{'metric:ttai':experimental?regularTTAI||expTTAI:undefined,'metric:experimental:ttai':expTTAI},unknownElementName?{unknownElementName:unknownElementName}:{}),unknownElementHierarchy?{unknownElementHierarchy:unknownElementHierarchy}:{}),'ufo:payloadTime':(0,_roundNumber.roundEpsilon)(performance.now()-interactionPayloadStart)})}};if(experimental){regularTTAI=undefined;expTTAI=undefined;}
|
|
16
|
+
apdex:(0,_optimizeApdex.optimizeApdex)(interaction.apdex,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),end:Math.round(end)},interaction.end3p?{end3p:Math.round(interaction.end3p)}:{}),{},{start:Math.round(start),segments:(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)==='2.0.0'?segmentTree:(0,_utils.getOldSegmentsLabelStack)(segments,interaction.type),marks:(0,_optimizeMarks.optimizeMarks)(interaction.marks,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),customData:optimizeCustomData(interaction),reactProfilerTimings:(0,_optimizeReactProfilerTimings.optimizeReactProfilerTimings)(interaction.reactProfilerTimings,start,(0,_getReactUfoPayloadVersion.getReactUFOPayloadVersion)(interaction.type)),minorInteractions:interaction.minorInteractions},responsiveness?{responsiveness:responsiveness}:{}),labelStack),pageLoadInteractionMetrics),getDetailedInteractionMetrics(resourceTimings)),getPageLoadDetailedInteractionMetrics()),getBm3TrackerTimings(interaction)),{},{'metric:ttai':experimental?regularTTAI||expTTAI:undefined,'metric:experimental:ttai':expTTAI},unknownElementName?{unknownElementName:unknownElementName}:{}),unknownElementHierarchy?{unknownElementHierarchy:unknownElementHierarchy}:{}),'ufo:payloadTime':(0,_roundNumber.roundEpsilon)(performance.now()-interactionPayloadStart)})}};if(experimental){regularTTAI=undefined;expTTAI=undefined;}size=(0,_getPayloadSize.default)(payload.attributes.properties);vcRev=payload.attributes.properties['ufo:vc:rev'];if(Array.isArray(vcRev)){rawData=vcRev.find(function(item){return item.revision==='raw-handler';});if(rawData){rawDataSize=(0,_getPayloadSize.default)(rawData);payload.attributes.properties['ufo:vc:raw:size']=rawDataSize;if(size>MAX_PAYLOAD_SIZE&&vcRev.length>0){payload.attributes.properties['ufo:vc:rev']=vcRev.filter(function(item){return item.revision!=='raw-handler';});payload.attributes.properties['ufo:vc:raw:removed']=true;}}}payload.attributes.properties['event:sizeInKb']=(0,_getPayloadSize.default)(payload.attributes.properties);// in order of importance, first one being least important
|
|
17
17
|
// we can add more fields as necessary
|
|
18
18
|
interactionMetricsFieldsToTrim=(0,_platformFeatureFlags.fg)('ufo_remove_featureflags_from_trimmed_fields')?['requestInfo','resourceTimings']:['requestInfo','featureFlags','resourceTimings'];// Top-level properties that can be trimmed if payload exceeds size limit
|
|
19
|
-
topLevelFieldsToTrim=['ufo:pageVisibilityTimeline'];properties=payload.attributes.properties;interactionMetrics=properties.interactionMetrics;if(!interactionMetrics){_context.next=
|
|
19
|
+
topLevelFieldsToTrim=['ufo:pageVisibilityTimeline'];properties=payload.attributes.properties;interactionMetrics=properties.interactionMetrics;if(!interactionMetrics){_context.next=78;break;}_iterator=_createForOfIteratorHelper(interactionMetricsFieldsToTrim);_context.prev=56;_iterator.s();case 58:if((_step=_iterator.n()).done){_context.next=70;break;}field=_step.value;if(!((0,_getPayloadSize.default)(properties)<=MAX_PAYLOAD_SIZE)){_context.next=62;break;}return _context.abrupt("continue",68);case 62:interactionMetrics[field]=undefined;properties['event:isTrimmed']=true;trimmedFields=properties['event:trimmedFields'];if(!Array.isArray(trimmedFields)){trimmedFields=[];}trimmedFields.push("interactionMetrics.".concat(field));properties['event:trimmedFields']=trimmedFields;case 68:_context.next=58;break;case 70:_context.next=75;break;case 72:_context.prev=72;_context.t7=_context["catch"](56);_iterator.e(_context.t7);case 75:_context.prev=75;_iterator.f();return _context.finish(75);case 78:_i2=0,_topLevelFieldsToTrim=topLevelFieldsToTrim;case 79:if(!(_i2<_topLevelFieldsToTrim.length)){_context.next=92;break;}_field=_topLevelFieldsToTrim[_i2];if(!((0,_getPayloadSize.default)(properties)<=MAX_PAYLOAD_SIZE)){_context.next=83;break;}return _context.abrupt("continue",89);case 83:properties[_field]=undefined;properties['event:isTrimmed']=true;_trimmedFields=properties['event:trimmedFields'];if(!Array.isArray(_trimmedFields)){_trimmedFields=[];}_trimmedFields.push(_field);properties['event:trimmedFields']=_trimmedFields;case 89:_i2++;_context.next=79;break;case 92:// If the payload size continues to exceed the limit and interactionMetrics is already trimmed,
|
|
20
20
|
// trim VC debug data (early viewport checkpoints). PIR-30543 - AFO-5033
|
|
21
|
-
isVCRevisionTrimEnabled=(0,_platformFeatureFlags.fg)('ufo_vc_revision_trim_enabled');(0,_trimVcDebugData.trimVcDebugData)(properties,(0,_getPayloadSize.default)(properties),MAX_PAYLOAD_SIZE,isVCRevisionTrimEnabled);return _context.abrupt("return",payload);case
|
|
21
|
+
isVCRevisionTrimEnabled=(0,_platformFeatureFlags.fg)('ufo_vc_revision_trim_enabled');(0,_trimVcDebugData.trimVcDebugData)(properties,(0,_getPayloadSize.default)(properties),MAX_PAYLOAD_SIZE,isVCRevisionTrimEnabled);return _context.abrupt("return",payload);case 95:case"end":return _context.stop();}},_callee,null,[[56,72,75,78]]);}));return _createInteractionMetricsPayload.apply(this,arguments);}function createPayloads(_x6,_x7){return _createPayloads.apply(this,arguments);}function _createPayloads(){_createPayloads=(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(interactionId,interaction){var ufoNameOverride,modifiedInteraction,config,payloads,isCriticalMetricsEnabled,vcMetrics,criticalMetricsPayloads,criticalPayloadCount,interactionMetricsPayload;return _regenerator.default.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:ufoNameOverride=getUfoNameOverride(interaction);modifiedInteraction=_objectSpread(_objectSpread({},interaction),{},{ufoName:ufoNameOverride});if(!(0,_platformFeatureFlags.fg)('platform_ufo_disable_ufo_names_config')){_context2.next=6;break;}config=(0,_config2.getConfig)();if(!(config!==null&&config!==void 0&&config.disabledUfoNames&&config!==null&&config!==void 0&&config.disabledUfoNames.includes(ufoNameOverride))){_context2.next=6;break;}return _context2.abrupt("return",[]);case 6:payloads=[];isCriticalMetricsEnabled=(0,_platformFeatureFlags.fg)('platform_ufo_critical_metrics_payload');// Calculate VC metrics once to avoid duplicate expensive calculations
|
|
22
22
|
_context2.next=10;return(0,_getVcMetrics.default)(interaction);case 10:vcMetrics=_context2.sent;if(!isCriticalMetricsEnabled){_context2.next=17;break;}_context2.next=14;return(0,_criticalMetricsPayload.createCriticalMetricsPayloads)(interactionId,interaction,vcMetrics);case 14:_context2.t0=_context2.sent;_context2.next=18;break;case 17:_context2.t0=[];case 18:criticalMetricsPayloads=_context2.t0;payloads.push.apply(payloads,(0,_toConsumableArray2.default)(criticalMetricsPayloads));criticalPayloadCount=isCriticalMetricsEnabled?criticalMetricsPayloads.length:undefined;_context2.next=23;return createInteractionMetricsPayload(modifiedInteraction,interactionId,undefined,criticalPayloadCount,vcMetrics);case 23:interactionMetricsPayload=_context2.sent;payloads.push(interactionMetricsPayload);return _context2.abrupt("return",payloads.filter(Boolean));case 26:case"end":return _context2.stop();}},_callee2);}));return _createPayloads.apply(this,arguments);}function createExperimentalMetricsPayload(_x8,_x9){return _createExperimentalMetricsPayload.apply(this,arguments);}function _createExperimentalMetricsPayload(){_createExperimentalMetricsPayload=(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(interactionId,interaction){var config,ufoName,rate,_config,pageVisibilityState,result;return _regenerator.default.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:config=(0,_config2.getConfig)();if(config){_context3.next=3;break;}throw Error('UFO Configuration not provided');case 3:ufoName=(0,_utils.sanitizeUfoName)(interaction.ufoName);rate=(0,_config2.getExperimentalInteractionRate)(ufoName,interaction.type);if((0,_coinflip.default)(rate)){_context3.next=7;break;}return _context3.abrupt("return",null);case 7:if(!(0,_platformFeatureFlags.fg)('platform_ufo_disable_ufo_names_config')){_context3.next=11;break;}_config=(0,_config2.getConfig)();if(!(_config!==null&&_config!==void 0&&_config.disabledUfoNames&&_config!==null&&_config!==void 0&&_config.disabledUfoNames.includes(ufoName))){_context3.next=11;break;}return _context3.abrupt("return",null);case 11:pageVisibilityState=(0,_hiddenTiming.getPageVisibilityState)(interaction.start,interaction.end);if(!(pageVisibilityState!=='visible')){_context3.next=14;break;}return _context3.abrupt("return",null);case 14:_context3.next=16;return createInteractionMetricsPayload(interaction,interactionId,true);case 16:result=_context3.sent;return _context3.abrupt("return",result);case 18:case"end":return _context3.stop();}},_callee3);}));return _createExperimentalMetricsPayload.apply(this,arguments);}function createExtraSearchPageInteractionPayload(_x0,_x1){return _createExtraSearchPageInteractionPayload.apply(this,arguments);}function _createExtraSearchPageInteractionPayload(){_createExtraSearchPageInteractionPayload=(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(interactionId,interaction){var SAIN_HOLD_NAMES,NAME_OVERRIDE,SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL,newInteractionId,newEnd,holdInfo,reactProfilerTimings,lastHold,isLastHoldSAIN,lastFilteredTime,filteredReactProfilerTimings,lastTiming,modifiedInteraction,payloads,vcMetrics,interactionMetricsPayload;return _regenerator.default.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:SAIN_HOLD_NAMES=['search-ai-dialog-visible-text-loading','search-ai-dialog-all-text-loading'];NAME_OVERRIDE='search-page-ignoring-smart-answers';SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL='search-page-smart-answers';newInteractionId="".concat(interactionId,"-ignoring-smart-answers");// Calculate a new end time which excludes SAIN holds
|
|
23
23
|
holdInfo=interaction.holdInfo,reactProfilerTimings=interaction.reactProfilerTimings;lastHold=holdInfo.at(-1);isLastHoldSAIN=Boolean(lastHold&&SAIN_HOLD_NAMES.includes(lastHold.name));// A new end time is only calculated if the last hold is a SAIN hold
|
|
24
24
|
if(isLastHoldSAIN){lastFilteredTime=null;filteredReactProfilerTimings=reactProfilerTimings.filter(function(timing){if(timing.commitTime===lastFilteredTime){return false;}var isTimingSmartAnswersInSearch=timing.labelStack.some(function(label){return label.name===SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL;});if(isTimingSmartAnswersInSearch){lastFilteredTime=timing.commitTime;return false;}return true;});lastTiming=filteredReactProfilerTimings.at(-1);if(lastTiming){newEnd=lastTiming.commitTime;}}modifiedInteraction=_objectSpread(_objectSpread({},interaction),{},{end:newEnd!==null&&newEnd!==void 0?newEnd:interaction.end,holdInfo:[],knownSegments:[],reactProfilerTimings:[],ufoName:NAME_OVERRIDE});payloads=[];_context4.next=12;return(0,_getVcMetrics.default)(interaction,false,true);case 12:vcMetrics=_context4.sent;_context4.next=15;return createInteractionMetricsPayload(modifiedInteraction,newInteractionId,undefined,undefined,vcMetrics);case 15:interactionMetricsPayload=_context4.sent;payloads.push(interactionMetricsPayload);return _context4.abrupt("return",payloads.filter(Boolean));case 18:case"end":return _context4.stop();}},_callee4);}));return _createExtraSearchPageInteractionPayload.apply(this,arguments);}
|
|
@@ -369,7 +369,7 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
369
369
|
results.push(vcNext);
|
|
370
370
|
}
|
|
371
371
|
feVCCalculationEndTime = performance.now();
|
|
372
|
-
if (!
|
|
372
|
+
if (!includeRawData) {
|
|
373
373
|
_context.next = 39;
|
|
374
374
|
break;
|
|
375
375
|
}
|
|
@@ -19,7 +19,7 @@ var _rllPlaceholders = require("../../vc-observer/observers/rll-placeholders");
|
|
|
19
19
|
var _intersectionObserver = require("./intersection-observer");
|
|
20
20
|
var _mutationObserver = _interopRequireDefault(require("./mutation-observer"));
|
|
21
21
|
var _performanceObserver = _interopRequireDefault(require("./performance-observer"));
|
|
22
|
-
var
|
|
22
|
+
var _checkWithinComponent3 = _interopRequireWildcard(require("./utils/check-within-component"));
|
|
23
23
|
var _isContainedWithinSmartAnswers = require("./utils/is-contained-within-smart-answers");
|
|
24
24
|
var _isElementVisible = require("./utils/is-element-visible");
|
|
25
25
|
var _isInVcIgnoreIfNoLayoutShiftMarker = _interopRequireDefault(require("./utils/is-in-vc-ignore-if-no-layout-shift-marker"));
|
|
@@ -277,7 +277,7 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
277
277
|
_context2.prev = 4;
|
|
278
278
|
_loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
|
|
279
279
|
var _this$getSSRState, _this$intersectionObs;
|
|
280
|
-
var addedNodeRef, addedNode, hasSameDeletedNode,
|
|
280
|
+
var addedNodeRef, addedNode, hasSameDeletedNode, _checkWithinComponent, isWithinThirdPartySegment, isWithinSmartAnswersSegment, isTargetReactRoot;
|
|
281
281
|
return _regenerator.default.wrap(function _loop$(_context) {
|
|
282
282
|
while (1) switch (_context.prev = _context.next) {
|
|
283
283
|
case 0:
|
|
@@ -296,9 +296,7 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
296
296
|
}
|
|
297
297
|
return n.isEqualNode(addedNode);
|
|
298
298
|
});
|
|
299
|
-
|
|
300
|
-
isWithin: false
|
|
301
|
-
}, isWithinThirdPartySegment = _ref7.isWithin;
|
|
299
|
+
_checkWithinComponent = (0, _checkWithinComponent3.default)(addedNode, 'UFOThirdPartySegment', _this.mapIs3pResult), isWithinThirdPartySegment = _checkWithinComponent.isWithin;
|
|
302
300
|
isWithinSmartAnswersSegment = Boolean(_this.shouldCheckSmartAnswersMutations() && (0, _isContainedWithinSmartAnswers.isContainedWithinSmartAnswers)(addedNode));
|
|
303
301
|
isTargetReactRoot = targetNode === ((_this$getSSRState = _this.getSSRState) === null || _this$getSSRState === void 0 || (_this$getSSRState = _this$getSSRState.call(_this)) === null || _this$getSSRState === void 0 ? void 0 : _this$getSSRState.reactRootElement);
|
|
304
302
|
(_this$intersectionObs = _this.intersectionObserver) === null || _this$intersectionObs === void 0 || _this$intersectionObs.watchAndTag(addedNode, (_this.trackLayoutShiftOffenders ? createElementMutationsWatcherNew : createElementMutationsWatcher)(removedNodeRects, isWithinThirdPartySegment, isWithinSmartAnswersSegment, !!hasSameDeletedNode, timestamp, isTargetReactRoot, _this.getSSRState, _this.getSSRPlaceholderHandler));
|
|
@@ -345,16 +343,16 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
345
343
|
return _ref6.apply(this, arguments);
|
|
346
344
|
};
|
|
347
345
|
}());
|
|
348
|
-
(0, _defineProperty2.default)(this, "handleAttributeMutation", function (
|
|
346
|
+
(0, _defineProperty2.default)(this, "handleAttributeMutation", function (_ref7) {
|
|
349
347
|
var _this$intersectionObs2;
|
|
350
|
-
var target =
|
|
351
|
-
attributeName =
|
|
352
|
-
oldValue =
|
|
353
|
-
newValue =
|
|
354
|
-
timestamp =
|
|
355
|
-
(_this$intersectionObs2 = _this.intersectionObserver) === null || _this$intersectionObs2 === void 0 || _this$intersectionObs2.watchAndTag(target, function (
|
|
356
|
-
var target =
|
|
357
|
-
rect =
|
|
348
|
+
var target = _ref7.target,
|
|
349
|
+
attributeName = _ref7.attributeName,
|
|
350
|
+
oldValue = _ref7.oldValue,
|
|
351
|
+
newValue = _ref7.newValue,
|
|
352
|
+
timestamp = _ref7.timestamp;
|
|
353
|
+
(_this$intersectionObs2 = _this.intersectionObserver) === null || _this$intersectionObs2 === void 0 || _this$intersectionObs2.watchAndTag(target, function (_ref8) {
|
|
354
|
+
var target = _ref8.target,
|
|
355
|
+
rect = _ref8.rect;
|
|
358
356
|
if ((0, _vcUtils.isContainedWithinMediaWrapper)(target)) {
|
|
359
357
|
return {
|
|
360
358
|
type: 'mutation:media',
|
|
@@ -366,10 +364,8 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
366
364
|
}
|
|
367
365
|
};
|
|
368
366
|
}
|
|
369
|
-
var
|
|
370
|
-
|
|
371
|
-
},
|
|
372
|
-
isWithinThirdPartySegment = _ref0.isWithin;
|
|
367
|
+
var _checkWithinComponent2 = (0, _checkWithinComponent3.default)(target, 'UFOThirdPartySegment', _this.mapIs3pResult),
|
|
368
|
+
isWithinThirdPartySegment = _checkWithinComponent2.isWithin;
|
|
373
369
|
if (isWithinThirdPartySegment) {
|
|
374
370
|
return {
|
|
375
371
|
type: 'mutation:third-party-attribute',
|
|
@@ -473,9 +469,9 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
473
469
|
};
|
|
474
470
|
});
|
|
475
471
|
});
|
|
476
|
-
(0, _defineProperty2.default)(this, "handleLayoutShift", function (
|
|
477
|
-
var time =
|
|
478
|
-
changedRects =
|
|
472
|
+
(0, _defineProperty2.default)(this, "handleLayoutShift", function (_ref9) {
|
|
473
|
+
var time = _ref9.time,
|
|
474
|
+
changedRects = _ref9.changedRects;
|
|
479
475
|
var _iterator2 = _createForOfIteratorHelper(changedRects),
|
|
480
476
|
_step2;
|
|
481
477
|
try {
|
|
@@ -517,7 +513,6 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
517
513
|
this.getSSRState = getSSRState;
|
|
518
514
|
this.getSSRPlaceholderHandler = getSSRPlaceholderHandler;
|
|
519
515
|
this.searchPageConfig = searchPageConfig;
|
|
520
|
-
this.enableThirdPartyTracking = (0, _platformFeatureFlags.fg)('platform_ufo_reenable_3p_tracking');
|
|
521
516
|
}
|
|
522
517
|
return (0, _createClass2.default)(ViewportObserver, [{
|
|
523
518
|
key: "initializeObservers",
|
|
@@ -570,7 +565,7 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
570
565
|
(_this$performanceObse2 = this.performanceObserver) === null || _this$performanceObse2 === void 0 || _this$performanceObse2.disconnect();
|
|
571
566
|
this.isStarted = false;
|
|
572
567
|
// Clean up caches when stopping
|
|
573
|
-
(0,
|
|
568
|
+
(0, _checkWithinComponent3.cleanupCaches)(this.mapIs3pResult);
|
|
574
569
|
}
|
|
575
570
|
}]);
|
|
576
571
|
}();
|
|
@@ -14,7 +14,7 @@ const getPageLoadDetailedInteractionMetrics=()=>{var _config$ssr2,_config$ssr2$g
|
|
|
14
14
|
'event:cpu:usage':createPressureStateReport(interaction.start,interaction.end),'event:memory:usage':createMemoryStateReport(interaction.start,interaction.end),...(criticalPayloadCount!==undefined?{'ufo:multipayload':true,'ufo:criticalPayloadCount':criticalPayloadCount}:{}),'ufo:pageVisibilityHiddenTimestamp':getEarliestHiddenTiming(interaction.start,interaction.end),'ufo:wasPageHiddenBeforeInit':getHasHiddenTimingBeforeSetup(),'ufo:isOpenedInBackground':isOpenedInBackground(interaction.type),'ufo:isTabThrottled':isTabThrottled(start,end),'ufo:pageVisibilityTimeline':getPageVisibilityTimeline(start,end),...(fg('ufo_detect_aborting_interaction_during_ssr')?{'ufo:hasAbortingInteractionDuringSSR':getHasAbortingEventDuringSSR()}:{}),// root
|
|
15
15
|
...getBrowserMetadataToLegacyFormat(),...batteryInfo,...getSSRProperties(type),...getAssetsMetrics(interaction,pageLoadInteractionMetrics===null||pageLoadInteractionMetrics===void 0?void 0:pageLoadInteractionMetrics.SSRDoneTime),...getPPSMetrics(interaction),...paintMetrics,...getNavigationMetricsToLegacyFormat(type),...finalVCMetrics,...experimentalMetrics,...((_config$additionalPay=config.additionalPayloadData)===null||_config$additionalPay===void 0?void 0:_config$additionalPay.call(config,interaction)),...getTracingContextData(interaction),...getStylesheetMetrics(),...getErrorCounts(interaction),...getReactHydrationStats(),interactionMetrics:{namePrefix:config.namePrefix||'',segmentPrefix:config.segmentPrefix||'',interactionId,pageVisibilityAtTTI,pageVisibilityAtTTAI,experimental__pageVisibilityAtTTI:moreAccuratePageVisibilityAtTTI,experimental__pageVisibilityAtTTAI:moreAccuratePageVisibilityAtTTAI,// raw interaction metrics
|
|
16
16
|
rate,routeName,type,abortReason,featureFlags,previousInteractionName,isPreviousInteractionAborted,abortedByInteractionName,// performance
|
|
17
|
-
apdex:optimizeApdex(interaction.apdex,getReactUFOPayloadVersion(interaction.type)),end:Math.round(end),...(interaction.end3p?{end3p:Math.round(interaction.end3p)}:{}),start:Math.round(start),segments:getReactUFOPayloadVersion(interaction.type)==='2.0.0'?segmentTree:getOldSegmentsLabelStack(segments,interaction.type),marks:optimizeMarks(interaction.marks,getReactUFOPayloadVersion(interaction.type)),customData:optimizeCustomData(interaction),reactProfilerTimings:optimizeReactProfilerTimings(interaction.reactProfilerTimings,start,getReactUFOPayloadVersion(interaction.type)),minorInteractions:interaction.minorInteractions,...(responsiveness?{responsiveness}:{}),...labelStack,...pageLoadInteractionMetrics,...getDetailedInteractionMetrics(resourceTimings),...getPageLoadDetailedInteractionMetrics(),...getBm3TrackerTimings(interaction),'metric:ttai':experimental?regularTTAI||expTTAI:undefined,'metric:experimental:ttai':expTTAI,...(unknownElementName?{unknownElementName}:{}),...(unknownElementHierarchy?{unknownElementHierarchy}:{})},'ufo:payloadTime':roundEpsilon(performance.now()-interactionPayloadStart)}}};if(experimental){regularTTAI=undefined;expTTAI=undefined;}
|
|
17
|
+
apdex:optimizeApdex(interaction.apdex,getReactUFOPayloadVersion(interaction.type)),end:Math.round(end),...(interaction.end3p?{end3p:Math.round(interaction.end3p)}:{}),start:Math.round(start),segments:getReactUFOPayloadVersion(interaction.type)==='2.0.0'?segmentTree:getOldSegmentsLabelStack(segments,interaction.type),marks:optimizeMarks(interaction.marks,getReactUFOPayloadVersion(interaction.type)),customData:optimizeCustomData(interaction),reactProfilerTimings:optimizeReactProfilerTimings(interaction.reactProfilerTimings,start,getReactUFOPayloadVersion(interaction.type)),minorInteractions:interaction.minorInteractions,...(responsiveness?{responsiveness}:{}),...labelStack,...pageLoadInteractionMetrics,...getDetailedInteractionMetrics(resourceTimings),...getPageLoadDetailedInteractionMetrics(),...getBm3TrackerTimings(interaction),'metric:ttai':experimental?regularTTAI||expTTAI:undefined,'metric:experimental:ttai':expTTAI,...(unknownElementName?{unknownElementName}:{}),...(unknownElementHierarchy?{unknownElementHierarchy}:{})},'ufo:payloadTime':roundEpsilon(performance.now()-interactionPayloadStart)}}};if(experimental){regularTTAI=undefined;expTTAI=undefined;}const size=getPayloadSize(payload.attributes.properties);const vcRev=payload.attributes.properties['ufo:vc:rev'];if(Array.isArray(vcRev)){const rawData=vcRev.find(item=>item.revision==='raw-handler');if(rawData){const rawDataSize=getPayloadSize(rawData);payload.attributes.properties['ufo:vc:raw:size']=rawDataSize;if(size>MAX_PAYLOAD_SIZE&&vcRev.length>0){payload.attributes.properties['ufo:vc:rev']=vcRev.filter(item=>item.revision!=='raw-handler');payload.attributes.properties['ufo:vc:raw:removed']=true;}}}payload.attributes.properties['event:sizeInKb']=getPayloadSize(payload.attributes.properties);// in order of importance, first one being least important
|
|
18
18
|
// we can add more fields as necessary
|
|
19
19
|
const interactionMetricsFieldsToTrim=fg('ufo_remove_featureflags_from_trimmed_fields')?['requestInfo','resourceTimings']:['requestInfo','featureFlags','resourceTimings'];// Top-level properties that can be trimmed if payload exceeds size limit
|
|
20
20
|
const topLevelFieldsToTrim=['ufo:pageVisibilityTimeline'];const properties=payload.attributes.properties;const interactionMetrics=properties.interactionMetrics;if(interactionMetrics){for(const field of interactionMetricsFieldsToTrim){if(getPayloadSize(properties)<=MAX_PAYLOAD_SIZE){continue;}interactionMetrics[field]=undefined;properties['event:isTrimmed']=true;let trimmedFields=properties['event:trimmedFields'];if(!Array.isArray(trimmedFields)){trimmedFields=[];}trimmedFields.push(`interactionMetrics.${field}`);properties['event:trimmedFields']=trimmedFields;}}// Trim top-level properties if payload still exceeds the limit
|
|
@@ -309,7 +309,7 @@ export default class VCObserverNew {
|
|
|
309
309
|
results.push(vcNext);
|
|
310
310
|
}
|
|
311
311
|
const feVCCalculationEndTime = performance.now();
|
|
312
|
-
if (includeRawData
|
|
312
|
+
if (includeRawData) {
|
|
313
313
|
const rawVCCalculationStartTime = performance.now();
|
|
314
314
|
const rawHandler = new RawDataHandler();
|
|
315
315
|
// Use rawDataStopTime (end3p) when available to capture observations during 3p holds
|
|
@@ -264,9 +264,7 @@ export default class ViewportObserver {
|
|
|
264
264
|
});
|
|
265
265
|
const {
|
|
266
266
|
isWithin: isWithinThirdPartySegment
|
|
267
|
-
} =
|
|
268
|
-
isWithin: false
|
|
269
|
-
};
|
|
267
|
+
} = checkWithinComponent(addedNode, 'UFOThirdPartySegment', this.mapIs3pResult);
|
|
270
268
|
const isWithinSmartAnswersSegment = Boolean(this.shouldCheckSmartAnswersMutations() && isContainedWithinSmartAnswers(addedNode));
|
|
271
269
|
const isTargetReactRoot = targetNode === ((_this$getSSRState = this.getSSRState) === null || _this$getSSRState === void 0 ? void 0 : (_this$getSSRState$cal = _this$getSSRState.call(this)) === null || _this$getSSRState$cal === void 0 ? void 0 : _this$getSSRState$cal.reactRootElement);
|
|
272
270
|
(_this$intersectionObs = this.intersectionObserver) === null || _this$intersectionObs === void 0 ? void 0 : _this$intersectionObs.watchAndTag(addedNode, (this.trackLayoutShiftOffenders ? createElementMutationsWatcherNew : createElementMutationsWatcher)(removedNodeRects, isWithinThirdPartySegment, isWithinSmartAnswersSegment, !!hasSameDeletedNode, timestamp, isTargetReactRoot, this.getSSRState, this.getSSRPlaceholderHandler));
|
|
@@ -297,9 +295,7 @@ export default class ViewportObserver {
|
|
|
297
295
|
}
|
|
298
296
|
const {
|
|
299
297
|
isWithin: isWithinThirdPartySegment
|
|
300
|
-
} =
|
|
301
|
-
isWithin: false
|
|
302
|
-
};
|
|
298
|
+
} = checkWithinComponent(target, 'UFOThirdPartySegment', this.mapIs3pResult);
|
|
303
299
|
if (isWithinThirdPartySegment) {
|
|
304
300
|
return {
|
|
305
301
|
type: 'mutation:third-party-attribute',
|
|
@@ -439,7 +435,6 @@ export default class ViewportObserver {
|
|
|
439
435
|
this.getSSRState = getSSRState;
|
|
440
436
|
this.getSSRPlaceholderHandler = getSSRPlaceholderHandler;
|
|
441
437
|
this.searchPageConfig = searchPageConfig;
|
|
442
|
-
this.enableThirdPartyTracking = fg('platform_ufo_reenable_3p_tracking');
|
|
443
438
|
}
|
|
444
439
|
initializeObservers() {
|
|
445
440
|
if (this.isStarted) {
|
|
@@ -13,12 +13,12 @@ getPageLoadDetailedInteractionMetrics=function getPageLoadDetailedInteractionMet
|
|
|
13
13
|
'event:hostname':((_window$location=window.location)===null||_window$location===void 0?void 0:_window$location.hostname)||'unknown','event:product':config.product,'event:population':config.population,'event:schema':'1.0.0','event:sizeInKb':0,'event:source':{name:'react-ufo/web',version:getReactUFOPayloadVersion(interaction.type)},'event:region':config.region||'unknown','experience:key':experimental?'custom.experimental-interaction-metrics':'custom.interaction-metrics','experience:name':newUFOName,// Include CPU usage monitoring data
|
|
14
14
|
'event:cpu:usage':createPressureStateReport(interaction.start,interaction.end),'event:memory:usage':createMemoryStateReport(interaction.start,interaction.end)},criticalPayloadCount!==undefined?{'ufo:multipayload':true,'ufo:criticalPayloadCount':criticalPayloadCount}:{}),{},{'ufo:pageVisibilityHiddenTimestamp':getEarliestHiddenTiming(interaction.start,interaction.end),'ufo:wasPageHiddenBeforeInit':getHasHiddenTimingBeforeSetup(),'ufo:isOpenedInBackground':isOpenedInBackground(interaction.type),'ufo:isTabThrottled':isTabThrottled(start,end),'ufo:pageVisibilityTimeline':getPageVisibilityTimeline(start,end)},fg('ufo_detect_aborting_interaction_during_ssr')?{'ufo:hasAbortingInteractionDuringSSR':getHasAbortingEventDuringSSR()}:{}),getBrowserMetadataToLegacyFormat()),batteryInfo),getSSRProperties(type)),getAssetsMetrics(interaction,pageLoadInteractionMetrics===null||pageLoadInteractionMetrics===void 0?void 0:pageLoadInteractionMetrics.SSRDoneTime)),getPPSMetrics(interaction)),paintMetrics),getNavigationMetricsToLegacyFormat(type)),finalVCMetrics),experimentalMetrics),(_config$additionalPay=config.additionalPayloadData)===null||_config$additionalPay===void 0?void 0:_config$additionalPay.call(config,interaction)),getTracingContextData(interaction)),getStylesheetMetrics()),getErrorCounts(interaction)),getReactHydrationStats()),{},{interactionMetrics:_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({namePrefix:config.namePrefix||'',segmentPrefix:config.segmentPrefix||'',interactionId:interactionId,pageVisibilityAtTTI:pageVisibilityAtTTI,pageVisibilityAtTTAI:pageVisibilityAtTTAI,experimental__pageVisibilityAtTTI:moreAccuratePageVisibilityAtTTI,experimental__pageVisibilityAtTTAI:moreAccuratePageVisibilityAtTTAI,// raw interaction metrics
|
|
15
15
|
rate:rate,routeName:routeName,type:type,abortReason:abortReason,featureFlags:featureFlags,previousInteractionName:previousInteractionName,isPreviousInteractionAborted:isPreviousInteractionAborted,abortedByInteractionName:abortedByInteractionName,// performance
|
|
16
|
-
apdex:optimizeApdex(interaction.apdex,getReactUFOPayloadVersion(interaction.type)),end:Math.round(end)},interaction.end3p?{end3p:Math.round(interaction.end3p)}:{}),{},{start:Math.round(start),segments:getReactUFOPayloadVersion(interaction.type)==='2.0.0'?segmentTree:getOldSegmentsLabelStack(segments,interaction.type),marks:optimizeMarks(interaction.marks,getReactUFOPayloadVersion(interaction.type)),customData:optimizeCustomData(interaction),reactProfilerTimings:optimizeReactProfilerTimings(interaction.reactProfilerTimings,start,getReactUFOPayloadVersion(interaction.type)),minorInteractions:interaction.minorInteractions},responsiveness?{responsiveness:responsiveness}:{}),labelStack),pageLoadInteractionMetrics),getDetailedInteractionMetrics(resourceTimings)),getPageLoadDetailedInteractionMetrics()),getBm3TrackerTimings(interaction)),{},{'metric:ttai':experimental?regularTTAI||expTTAI:undefined,'metric:experimental:ttai':expTTAI},unknownElementName?{unknownElementName:unknownElementName}:{}),unknownElementHierarchy?{unknownElementHierarchy:unknownElementHierarchy}:{}),'ufo:payloadTime':roundEpsilon(performance.now()-interactionPayloadStart)})}};if(experimental){regularTTAI=undefined;expTTAI=undefined;}
|
|
16
|
+
apdex:optimizeApdex(interaction.apdex,getReactUFOPayloadVersion(interaction.type)),end:Math.round(end)},interaction.end3p?{end3p:Math.round(interaction.end3p)}:{}),{},{start:Math.round(start),segments:getReactUFOPayloadVersion(interaction.type)==='2.0.0'?segmentTree:getOldSegmentsLabelStack(segments,interaction.type),marks:optimizeMarks(interaction.marks,getReactUFOPayloadVersion(interaction.type)),customData:optimizeCustomData(interaction),reactProfilerTimings:optimizeReactProfilerTimings(interaction.reactProfilerTimings,start,getReactUFOPayloadVersion(interaction.type)),minorInteractions:interaction.minorInteractions},responsiveness?{responsiveness:responsiveness}:{}),labelStack),pageLoadInteractionMetrics),getDetailedInteractionMetrics(resourceTimings)),getPageLoadDetailedInteractionMetrics()),getBm3TrackerTimings(interaction)),{},{'metric:ttai':experimental?regularTTAI||expTTAI:undefined,'metric:experimental:ttai':expTTAI},unknownElementName?{unknownElementName:unknownElementName}:{}),unknownElementHierarchy?{unknownElementHierarchy:unknownElementHierarchy}:{}),'ufo:payloadTime':roundEpsilon(performance.now()-interactionPayloadStart)})}};if(experimental){regularTTAI=undefined;expTTAI=undefined;}size=getPayloadSize(payload.attributes.properties);vcRev=payload.attributes.properties['ufo:vc:rev'];if(Array.isArray(vcRev)){rawData=vcRev.find(function(item){return item.revision==='raw-handler';});if(rawData){rawDataSize=getPayloadSize(rawData);payload.attributes.properties['ufo:vc:raw:size']=rawDataSize;if(size>MAX_PAYLOAD_SIZE&&vcRev.length>0){payload.attributes.properties['ufo:vc:rev']=vcRev.filter(function(item){return item.revision!=='raw-handler';});payload.attributes.properties['ufo:vc:raw:removed']=true;}}}payload.attributes.properties['event:sizeInKb']=getPayloadSize(payload.attributes.properties);// in order of importance, first one being least important
|
|
17
17
|
// we can add more fields as necessary
|
|
18
18
|
interactionMetricsFieldsToTrim=fg('ufo_remove_featureflags_from_trimmed_fields')?['requestInfo','resourceTimings']:['requestInfo','featureFlags','resourceTimings'];// Top-level properties that can be trimmed if payload exceeds size limit
|
|
19
|
-
topLevelFieldsToTrim=['ufo:pageVisibilityTimeline'];properties=payload.attributes.properties;interactionMetrics=properties.interactionMetrics;if(!interactionMetrics){_context.next=
|
|
19
|
+
topLevelFieldsToTrim=['ufo:pageVisibilityTimeline'];properties=payload.attributes.properties;interactionMetrics=properties.interactionMetrics;if(!interactionMetrics){_context.next=78;break;}_iterator=_createForOfIteratorHelper(interactionMetricsFieldsToTrim);_context.prev=56;_iterator.s();case 58:if((_step=_iterator.n()).done){_context.next=70;break;}field=_step.value;if(!(getPayloadSize(properties)<=MAX_PAYLOAD_SIZE)){_context.next=62;break;}return _context.abrupt("continue",68);case 62:interactionMetrics[field]=undefined;properties['event:isTrimmed']=true;trimmedFields=properties['event:trimmedFields'];if(!Array.isArray(trimmedFields)){trimmedFields=[];}trimmedFields.push("interactionMetrics.".concat(field));properties['event:trimmedFields']=trimmedFields;case 68:_context.next=58;break;case 70:_context.next=75;break;case 72:_context.prev=72;_context.t7=_context["catch"](56);_iterator.e(_context.t7);case 75:_context.prev=75;_iterator.f();return _context.finish(75);case 78:_i2=0,_topLevelFieldsToTrim=topLevelFieldsToTrim;case 79:if(!(_i2<_topLevelFieldsToTrim.length)){_context.next=92;break;}_field=_topLevelFieldsToTrim[_i2];if(!(getPayloadSize(properties)<=MAX_PAYLOAD_SIZE)){_context.next=83;break;}return _context.abrupt("continue",89);case 83:properties[_field]=undefined;properties['event:isTrimmed']=true;_trimmedFields=properties['event:trimmedFields'];if(!Array.isArray(_trimmedFields)){_trimmedFields=[];}_trimmedFields.push(_field);properties['event:trimmedFields']=_trimmedFields;case 89:_i2++;_context.next=79;break;case 92:// If the payload size continues to exceed the limit and interactionMetrics is already trimmed,
|
|
20
20
|
// trim VC debug data (early viewport checkpoints). PIR-30543 - AFO-5033
|
|
21
|
-
isVCRevisionTrimEnabled=fg('ufo_vc_revision_trim_enabled');trimVcDebugData(properties,getPayloadSize(properties),MAX_PAYLOAD_SIZE,isVCRevisionTrimEnabled);return _context.abrupt("return",payload);case
|
|
21
|
+
isVCRevisionTrimEnabled=fg('ufo_vc_revision_trim_enabled');trimVcDebugData(properties,getPayloadSize(properties),MAX_PAYLOAD_SIZE,isVCRevisionTrimEnabled);return _context.abrupt("return",payload);case 95:case"end":return _context.stop();}},_callee,null,[[56,72,75,78]]);}));return _createInteractionMetricsPayload.apply(this,arguments);}export function createPayloads(_x6,_x7){return _createPayloads.apply(this,arguments);}function _createPayloads(){_createPayloads=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(interactionId,interaction){var ufoNameOverride,modifiedInteraction,config,payloads,isCriticalMetricsEnabled,vcMetrics,criticalMetricsPayloads,criticalPayloadCount,interactionMetricsPayload;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:ufoNameOverride=getUfoNameOverride(interaction);modifiedInteraction=_objectSpread(_objectSpread({},interaction),{},{ufoName:ufoNameOverride});if(!fg('platform_ufo_disable_ufo_names_config')){_context2.next=6;break;}config=getConfig();if(!(config!==null&&config!==void 0&&config.disabledUfoNames&&config!==null&&config!==void 0&&config.disabledUfoNames.includes(ufoNameOverride))){_context2.next=6;break;}return _context2.abrupt("return",[]);case 6:payloads=[];isCriticalMetricsEnabled=fg('platform_ufo_critical_metrics_payload');// Calculate VC metrics once to avoid duplicate expensive calculations
|
|
22
22
|
_context2.next=10;return getVCMetrics(interaction);case 10:vcMetrics=_context2.sent;if(!isCriticalMetricsEnabled){_context2.next=17;break;}_context2.next=14;return createCriticalMetricsPayloads(interactionId,interaction,vcMetrics);case 14:_context2.t0=_context2.sent;_context2.next=18;break;case 17:_context2.t0=[];case 18:criticalMetricsPayloads=_context2.t0;payloads.push.apply(payloads,_toConsumableArray(criticalMetricsPayloads));criticalPayloadCount=isCriticalMetricsEnabled?criticalMetricsPayloads.length:undefined;_context2.next=23;return createInteractionMetricsPayload(modifiedInteraction,interactionId,undefined,criticalPayloadCount,vcMetrics);case 23:interactionMetricsPayload=_context2.sent;payloads.push(interactionMetricsPayload);return _context2.abrupt("return",payloads.filter(Boolean));case 26:case"end":return _context2.stop();}},_callee2);}));return _createPayloads.apply(this,arguments);}export function createExperimentalMetricsPayload(_x8,_x9){return _createExperimentalMetricsPayload.apply(this,arguments);}function _createExperimentalMetricsPayload(){_createExperimentalMetricsPayload=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(interactionId,interaction){var config,ufoName,rate,_config,pageVisibilityState,result;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:config=getConfig();if(config){_context3.next=3;break;}throw Error('UFO Configuration not provided');case 3:ufoName=sanitizeUfoName(interaction.ufoName);rate=getExperimentalInteractionRate(ufoName,interaction.type);if(coinflip(rate)){_context3.next=7;break;}return _context3.abrupt("return",null);case 7:if(!fg('platform_ufo_disable_ufo_names_config')){_context3.next=11;break;}_config=getConfig();if(!(_config!==null&&_config!==void 0&&_config.disabledUfoNames&&_config!==null&&_config!==void 0&&_config.disabledUfoNames.includes(ufoName))){_context3.next=11;break;}return _context3.abrupt("return",null);case 11:pageVisibilityState=getPageVisibilityState(interaction.start,interaction.end);if(!(pageVisibilityState!=='visible')){_context3.next=14;break;}return _context3.abrupt("return",null);case 14:_context3.next=16;return createInteractionMetricsPayload(interaction,interactionId,true);case 16:result=_context3.sent;return _context3.abrupt("return",result);case 18:case"end":return _context3.stop();}},_callee3);}));return _createExperimentalMetricsPayload.apply(this,arguments);}export function createExtraSearchPageInteractionPayload(_x0,_x1){return _createExtraSearchPageInteractionPayload.apply(this,arguments);}function _createExtraSearchPageInteractionPayload(){_createExtraSearchPageInteractionPayload=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(interactionId,interaction){var SAIN_HOLD_NAMES,NAME_OVERRIDE,SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL,newInteractionId,newEnd,holdInfo,reactProfilerTimings,lastHold,isLastHoldSAIN,lastFilteredTime,filteredReactProfilerTimings,lastTiming,modifiedInteraction,payloads,vcMetrics,interactionMetricsPayload;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:SAIN_HOLD_NAMES=['search-ai-dialog-visible-text-loading','search-ai-dialog-all-text-loading'];NAME_OVERRIDE='search-page-ignoring-smart-answers';SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL='search-page-smart-answers';newInteractionId="".concat(interactionId,"-ignoring-smart-answers");// Calculate a new end time which excludes SAIN holds
|
|
23
23
|
holdInfo=interaction.holdInfo,reactProfilerTimings=interaction.reactProfilerTimings;lastHold=holdInfo.at(-1);isLastHoldSAIN=Boolean(lastHold&&SAIN_HOLD_NAMES.includes(lastHold.name));// A new end time is only calculated if the last hold is a SAIN hold
|
|
24
24
|
if(isLastHoldSAIN){lastFilteredTime=null;filteredReactProfilerTimings=reactProfilerTimings.filter(function(timing){if(timing.commitTime===lastFilteredTime){return false;}var isTimingSmartAnswersInSearch=timing.labelStack.some(function(label){return label.name===SEARCH_PAGE_SMART_ANSWERS_SEGMENT_LABEL;});if(isTimingSmartAnswersInSearch){lastFilteredTime=timing.commitTime;return false;}return true;});lastTiming=filteredReactProfilerTimings.at(-1);if(lastTiming){newEnd=lastTiming.commitTime;}}modifiedInteraction=_objectSpread(_objectSpread({},interaction),{},{end:newEnd!==null&&newEnd!==void 0?newEnd:interaction.end,holdInfo:[],knownSegments:[],reactProfilerTimings:[],ufoName:NAME_OVERRIDE});payloads=[];_context4.next=12;return getVCMetrics(interaction,false,true);case 12:vcMetrics=_context4.sent;_context4.next=15;return createInteractionMetricsPayload(modifiedInteraction,newInteractionId,undefined,undefined,vcMetrics);case 15:interactionMetricsPayload=_context4.sent;payloads.push(interactionMetricsPayload);return _context4.abrupt("return",payloads.filter(Boolean));case 18:case"end":return _context4.stop();}},_callee4);}));return _createExtraSearchPageInteractionPayload.apply(this,arguments);}
|
|
@@ -361,7 +361,7 @@ var VCObserverNew = /*#__PURE__*/function () {
|
|
|
361
361
|
results.push(vcNext);
|
|
362
362
|
}
|
|
363
363
|
feVCCalculationEndTime = performance.now();
|
|
364
|
-
if (!
|
|
364
|
+
if (!includeRawData) {
|
|
365
365
|
_context.next = 39;
|
|
366
366
|
break;
|
|
367
367
|
}
|
|
@@ -268,7 +268,7 @@ var ViewportObserver = /*#__PURE__*/function () {
|
|
|
268
268
|
_context2.prev = 4;
|
|
269
269
|
_loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
|
|
270
270
|
var _this$getSSRState, _this$intersectionObs;
|
|
271
|
-
var addedNodeRef, addedNode, hasSameDeletedNode,
|
|
271
|
+
var addedNodeRef, addedNode, hasSameDeletedNode, _checkWithinComponent, isWithinThirdPartySegment, isWithinSmartAnswersSegment, isTargetReactRoot;
|
|
272
272
|
return _regeneratorRuntime.wrap(function _loop$(_context) {
|
|
273
273
|
while (1) switch (_context.prev = _context.next) {
|
|
274
274
|
case 0:
|
|
@@ -287,9 +287,7 @@ var ViewportObserver = /*#__PURE__*/function () {
|
|
|
287
287
|
}
|
|
288
288
|
return n.isEqualNode(addedNode);
|
|
289
289
|
});
|
|
290
|
-
|
|
291
|
-
isWithin: false
|
|
292
|
-
}, isWithinThirdPartySegment = _ref7.isWithin;
|
|
290
|
+
_checkWithinComponent = checkWithinComponent(addedNode, 'UFOThirdPartySegment', _this.mapIs3pResult), isWithinThirdPartySegment = _checkWithinComponent.isWithin;
|
|
293
291
|
isWithinSmartAnswersSegment = Boolean(_this.shouldCheckSmartAnswersMutations() && isContainedWithinSmartAnswers(addedNode));
|
|
294
292
|
isTargetReactRoot = targetNode === ((_this$getSSRState = _this.getSSRState) === null || _this$getSSRState === void 0 || (_this$getSSRState = _this$getSSRState.call(_this)) === null || _this$getSSRState === void 0 ? void 0 : _this$getSSRState.reactRootElement);
|
|
295
293
|
(_this$intersectionObs = _this.intersectionObserver) === null || _this$intersectionObs === void 0 || _this$intersectionObs.watchAndTag(addedNode, (_this.trackLayoutShiftOffenders ? createElementMutationsWatcherNew : createElementMutationsWatcher)(removedNodeRects, isWithinThirdPartySegment, isWithinSmartAnswersSegment, !!hasSameDeletedNode, timestamp, isTargetReactRoot, _this.getSSRState, _this.getSSRPlaceholderHandler));
|
|
@@ -336,16 +334,16 @@ var ViewportObserver = /*#__PURE__*/function () {
|
|
|
336
334
|
return _ref6.apply(this, arguments);
|
|
337
335
|
};
|
|
338
336
|
}());
|
|
339
|
-
_defineProperty(this, "handleAttributeMutation", function (
|
|
337
|
+
_defineProperty(this, "handleAttributeMutation", function (_ref7) {
|
|
340
338
|
var _this$intersectionObs2;
|
|
341
|
-
var target =
|
|
342
|
-
attributeName =
|
|
343
|
-
oldValue =
|
|
344
|
-
newValue =
|
|
345
|
-
timestamp =
|
|
346
|
-
(_this$intersectionObs2 = _this.intersectionObserver) === null || _this$intersectionObs2 === void 0 || _this$intersectionObs2.watchAndTag(target, function (
|
|
347
|
-
var target =
|
|
348
|
-
rect =
|
|
339
|
+
var target = _ref7.target,
|
|
340
|
+
attributeName = _ref7.attributeName,
|
|
341
|
+
oldValue = _ref7.oldValue,
|
|
342
|
+
newValue = _ref7.newValue,
|
|
343
|
+
timestamp = _ref7.timestamp;
|
|
344
|
+
(_this$intersectionObs2 = _this.intersectionObserver) === null || _this$intersectionObs2 === void 0 || _this$intersectionObs2.watchAndTag(target, function (_ref8) {
|
|
345
|
+
var target = _ref8.target,
|
|
346
|
+
rect = _ref8.rect;
|
|
349
347
|
if (isContainedWithinMediaWrapper(target)) {
|
|
350
348
|
return {
|
|
351
349
|
type: 'mutation:media',
|
|
@@ -357,10 +355,8 @@ var ViewportObserver = /*#__PURE__*/function () {
|
|
|
357
355
|
}
|
|
358
356
|
};
|
|
359
357
|
}
|
|
360
|
-
var
|
|
361
|
-
|
|
362
|
-
},
|
|
363
|
-
isWithinThirdPartySegment = _ref0.isWithin;
|
|
358
|
+
var _checkWithinComponent2 = checkWithinComponent(target, 'UFOThirdPartySegment', _this.mapIs3pResult),
|
|
359
|
+
isWithinThirdPartySegment = _checkWithinComponent2.isWithin;
|
|
364
360
|
if (isWithinThirdPartySegment) {
|
|
365
361
|
return {
|
|
366
362
|
type: 'mutation:third-party-attribute',
|
|
@@ -464,9 +460,9 @@ var ViewportObserver = /*#__PURE__*/function () {
|
|
|
464
460
|
};
|
|
465
461
|
});
|
|
466
462
|
});
|
|
467
|
-
_defineProperty(this, "handleLayoutShift", function (
|
|
468
|
-
var time =
|
|
469
|
-
changedRects =
|
|
463
|
+
_defineProperty(this, "handleLayoutShift", function (_ref9) {
|
|
464
|
+
var time = _ref9.time,
|
|
465
|
+
changedRects = _ref9.changedRects;
|
|
470
466
|
var _iterator2 = _createForOfIteratorHelper(changedRects),
|
|
471
467
|
_step2;
|
|
472
468
|
try {
|
|
@@ -508,7 +504,6 @@ var ViewportObserver = /*#__PURE__*/function () {
|
|
|
508
504
|
this.getSSRState = getSSRState;
|
|
509
505
|
this.getSSRPlaceholderHandler = getSSRPlaceholderHandler;
|
|
510
506
|
this.searchPageConfig = searchPageConfig;
|
|
511
|
-
this.enableThirdPartyTracking = fg('platform_ufo_reenable_3p_tracking');
|
|
512
507
|
}
|
|
513
508
|
return _createClass(ViewportObserver, [{
|
|
514
509
|
key: "initializeObservers",
|
|
@@ -26,7 +26,6 @@ export default class ViewportObserver {
|
|
|
26
26
|
private isStarted;
|
|
27
27
|
private trackLayoutShiftOffenders;
|
|
28
28
|
private searchPageConfig;
|
|
29
|
-
private enableThirdPartyTracking;
|
|
30
29
|
private getSSRState?;
|
|
31
30
|
private getSSRPlaceholderHandler?;
|
|
32
31
|
constructor({ onChange, getSSRState, getSSRPlaceholderHandler, trackLayoutShiftOffenders, searchPageConfig, }: ViewPortObserverConstructorArgs);
|
|
@@ -26,7 +26,6 @@ export default class ViewportObserver {
|
|
|
26
26
|
private isStarted;
|
|
27
27
|
private trackLayoutShiftOffenders;
|
|
28
28
|
private searchPageConfig;
|
|
29
|
-
private enableThirdPartyTracking;
|
|
30
29
|
private getSSRState?;
|
|
31
30
|
private getSSRPlaceholderHandler?;
|
|
32
31
|
constructor({ onChange, getSSRState, getSSRPlaceholderHandler, trackLayoutShiftOffenders, searchPageConfig, }: ViewPortObserverConstructorArgs);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/react-ufo",
|
|
3
|
-
"version": "5.5.
|
|
3
|
+
"version": "5.5.3",
|
|
4
4
|
"description": "Parts of React UFO that are publicly available",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -158,9 +158,6 @@
|
|
|
158
158
|
"platform_ufo_use_native_page_visibility_api": {
|
|
159
159
|
"type": "boolean"
|
|
160
160
|
},
|
|
161
|
-
"platform_ufo_enable_vc_raw_data": {
|
|
162
|
-
"type": "boolean"
|
|
163
|
-
},
|
|
164
161
|
"platform_mark_ufo_segment_first_load": {
|
|
165
162
|
"type": "boolean"
|
|
166
163
|
},
|
|
@@ -197,9 +194,6 @@
|
|
|
197
194
|
"platform_ufo_page_visibility_timeline": {
|
|
198
195
|
"type": "boolean"
|
|
199
196
|
},
|
|
200
|
-
"platform_ufo_reenable_3p_tracking": {
|
|
201
|
-
"type": "boolean"
|
|
202
|
-
},
|
|
203
197
|
"platform_ufo_disable_ufo_names_config": {
|
|
204
198
|
"type": "boolean"
|
|
205
199
|
},
|