vimp-engine 0.35.1 → 0.35.2
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/package.json
CHANGED
|
@@ -417,6 +417,7 @@ export function createDiagnostics({
|
|
|
417
417
|
* @returns {Function} снятие перехватчиков
|
|
418
418
|
*/
|
|
419
419
|
function install(target = window) {
|
|
420
|
+
const doc = target.document;
|
|
420
421
|
// ошибки загрузки <img>/<script> приходят обычным Event на элементе —
|
|
421
422
|
// это сбои ресурсов, а не исключения
|
|
422
423
|
const onError = event => {
|
|
@@ -428,7 +429,14 @@ export function createDiagnostics({
|
|
|
428
429
|
capture(event.reason, { kind: 'rejection' });
|
|
429
430
|
};
|
|
430
431
|
const onPageHide = () => flush();
|
|
431
|
-
|
|
432
|
+
// фоновую вкладку мобильный браузер убивает и без pagehide: скрытие —
|
|
433
|
+
// последний надёжный момент отправить накопленное (по таймеру отчёты
|
|
434
|
+
// ждут до minIntervalMs)
|
|
435
|
+
const onVisibility = () => {
|
|
436
|
+
if (doc?.visibilityState === 'hidden') {
|
|
437
|
+
flush();
|
|
438
|
+
}
|
|
439
|
+
};
|
|
432
440
|
|
|
433
441
|
try {
|
|
434
442
|
target.addEventListener('error', onError);
|
|
@@ -436,6 +444,7 @@ export function createDiagnostics({
|
|
|
436
444
|
target.addEventListener('pagehide', onPageHide);
|
|
437
445
|
// событие всплывает к документу
|
|
438
446
|
doc?.addEventListener('securitypolicyviolation', reportCsp);
|
|
447
|
+
doc?.addEventListener('visibilitychange', onVisibility);
|
|
439
448
|
} catch {
|
|
440
449
|
// нет цели — просто не ловим
|
|
441
450
|
}
|
|
@@ -446,6 +455,7 @@ export function createDiagnostics({
|
|
|
446
455
|
target.removeEventListener('unhandledrejection', onRejection);
|
|
447
456
|
target.removeEventListener('pagehide', onPageHide);
|
|
448
457
|
doc?.removeEventListener('securitypolicyviolation', reportCsp);
|
|
458
|
+
doc?.removeEventListener('visibilitychange', onVisibility);
|
|
449
459
|
} catch {
|
|
450
460
|
// снятие не должно ронять вызывающего
|
|
451
461
|
}
|