Releases: FilteringDev/NamuLink
20.3.0
이번 업데이트는 필터링 관련이 아닌 빌드 스크립트 업데이트입니다. esbuild가 아닌 rspack으로 변경했습니다.
Full Changelog: 20.2.1...20.3.0
20.2.1
- fix: update regex pattern in Promise.then handling for improved accuracy
- fix: add origin check in message event listener for improved security
타켓팅된 Promise.prototype.then call의 function 파라미터 2개 중 어느 한개에서 내부 function의 파라미터 표현식이 -가 들어가 있을 때 타켓팅되지 않았던 이슈를 PL2PromiseThenRegexs 업데이트로 해결했습니다.
Full Changelog: 20.2.0...20.2.1
20.2.0
더 이상 setTimeout으로 모바일 환경에서의 나무위키 문서 목차 근처 및 분류 헤더 근처에서 지연된 파워링크 생성을 나무위키 프론트엔드의 은폐된 setTimeout method call로 인해 차단할 수 없으므로, Promise.prototype.then을 대신 mock 하였습니다.
대신, 이로 인해 placeholder가 생기는 이슈가 있으나 setTimeout(() => { ... }, 250)으로 placeholder 처리 함수를 포함시켰기에 문제가 없습니다.
Full Changelog: 20.1.8...20.2.0
20.1.8
- fix: adjust mutation threshold for settled events to improve detection
- fix: enhance mutation detection logic to consider added and removed nodes
- fix: adjust mutation threshold for settled events to improve detection on mobile
- fix: enhance mutation detection logic to include next and previous siblings
- fix: add additional delay to settled timer for improved mutation handling
모바일 Chromium 브라우저 계열에서 MutationObserver의 MutationRecord[]에 대한 이벤트 트리거 최소 조건을 완화 및 지연(QuietMs * 3)된 ArmSettledTimer을 실행하여 SPA warm navigation 안정화 후 몇 십초 이내로 나무위키 문서 근처 분류 헤더에서 파워링크가 다시 부활하는 이슈를 해결했습니다.
Full Changelog: 20.1.6...20.1.8
20.1.6
스마트폰 디스플레이(width가 height 보다 크게 작은 경우)에 열린 나무위키 웹 페이지에서는 viewport의 window.document.body.getBoundingClientRect()의 width가 500 이하가 될 수 있습니다.
따라서, window.document.body.getBoundingClientRect()의 width이 500을 초과한 경우에만 빠른 특정 인물(person)의 기본 프로필 테이블의 HTMLElement.prototype.getBoundingClientRect() 검사를 진행하고 그러지 않은 경우 스킵한 뒤 다른 방법으로 검사하게 수정했습니다.
Full Changelog: 20.1.5...20.1.6
20.1.5
XOR 거리 계산 기반 OCR이 각 국가들의 국기를 제대로 인식하지 못하고 모바일과 데스크톱 관계 없이 넓은 가로폭 해상도을 가진 브라우저 탭에서 나무위키 문서가 열 린 경우, 특정 인물(person)의 기본 정보 테이블을 잘못 숨기는 이슈를 해결했습니다.
Firefox와 Chromium 기반 브라우저 모두 해당됩니다.
Full Changelog: 20.1.4...20.1.5
20.1.4
SPA warm navigation (나무위키내 문서에서 다른 문서로 이동) 하는 경우, URL 변경 감지로 지연된 handler function로 handler를 한번 더 실행하게 수정하였습니다. 이로 인해 vue:settle event 가 트리거되지 않았거라 예상되는 https://namu.wiki/w/...?from= 이슈를 해결하였거라고 판단됩니다.
Full Changelog: 20.1.3...20.1.4
20.1.3
나무위키 웹 사이트에서 SPA warm navigation (문서에서 다른 문서로 이동) 하고 Vue.js 랜더링이 완료되었는지 추측하는 vue:settle 이라는 커스텀 Event를 또 우만레가 저격했습니다.
그래서 MutationObserver 간 최소 간격을 250 ms에서 75 ms 로 변경하고 성능 과부하 방지를 위해서 간격 타이머를 초기화하는 조건을 동시 Mutations 들이 25개 이상있어야 초기화하도록 수정했습니다.
Full Changelog: 20.1.2...20.1.3
20.1.2
Full Changelog: 20.1.1...20.1.2