document.hidden 강제 false로 백그라운드 탭 이미지 로딩 보강

- document.hidden, document.visibilityState 강제 오버라이드
  (페이지의 lazy loading 코드가 탭 상태를 확인해도 항상 visible)
- IntersectionObserver 후킹 유지 (observe 즉시 콜백)
- 두 조치로 백그라운드 탭에서도 일반 탭처럼 IO + 이미지 로딩 동작
This commit is contained in:
user01
2026-06-14 17:14:17 +09:00
parent b8ce964510
commit a3845bf429

View File

@@ -24,6 +24,20 @@
// Phase 1: IntersectionObserver 후킹 (document-start 에서 즉시 실행) // Phase 1: IntersectionObserver 후킹 (document-start 에서 즉시 실행)
// 백그라운드 탭에서 IO가 동작하지 않아도 observe() 즉시 콜백 실행 // 백그라운드 탭에서 IO가 동작하지 않아도 observe() 즉시 콜백 실행
// --------------------------------------------------------------- // ---------------------------------------------------------------
// document.hidden 강제 false (배경 탭에서도 페이지가 활성화된 것으로 인식)
try {
Object.defineProperty(document, 'hidden', { get: () => false, configurable: true });
Object.defineProperty(document, 'visibilityState', { get: () => 'visible', configurable: true });
} catch (_) {}
try {
const proto = Document.prototype;
if (proto) {
Object.defineProperty(proto, 'hidden', { get: () => false, configurable: true });
Object.defineProperty(proto, 'visibilityState', { get: () => 'visible', configurable: true });
}
} catch (_) {}
// IntersectionObserver 후킹: observe() 즉시 콜백 실행
const OrigIO = window.IntersectionObserver; const OrigIO = window.IntersectionObserver;
if (OrigIO) { if (OrigIO) {
const HookedIO = function (callback, options) { const HookedIO = function (callback, options) {