Fork me on GitHub

2021-08-03: Yarn 3.0, Chrome 93 beta, cross origin iframe에서 alert/prompt/confirm 삭제

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #551 - Yarn 3.0 릴리스.

Node.js 10 지원 종료, .pnp.cjs로 이름 변경, @yarnpkg/pnpify를 세 개의 패키지로 분할 하는 등의 변경 진행.

  • @yarnpkg/sdks: Editor SDKs
  • @yarnpkg/pnpify: PnP와 호환성이 없는 도구를 실행하는 도구
  • @yarnpkg/nm: node_modules linker

또, exports 필드 지원, pnpm 스러운 하드 링크 지원, 쉘 구문 지원 개선, ESBuild로 bundle을 지원하는 @yarnpkg/esbuild-plugin-pnp가 추가됐다.


Chrome 93 beta 릴리스.

COEP를 보다 쉽게 도입할 수 있도록 하는 Cross-Origin-Embedder-Policy:credentialless, URL Handlers가 Origin Trial로 추가됐다.
또, AbortSignal.abort() 메서드 지원, Stage 3의 Error cause와 Object.hasOwn를 지원한다.

다크 모드 대응과 관련해 CSS의 prefers-color-scheme media query를 사용해 사용자 에이전트가 어떤 color scheme를 우선하는지 판정했다. 하지만 이 속성은 페이지가 로드되고 난 후 알 수 있으므로 페이지 로드 시점에 해당 판정을 할 수 있도록 Client Hint Header로 Sec-CH-Prefers-Color -Scheme가 추가됐다.
또, navigator.userAgentUser-Agent 헤더의 다음 모델인 User-Agent Client Hints의 API나 헤더 변경도 함께 이뤄졌다.


Chrome 92에서는 cross origin iframe 내에서 window.{alert, prompt, confirm}를 사용할 수 없다.

이 문제를 대응하는 방법으로 다음과 같은 수단이 이야기된다.

이 영향으로 CodePen 등 iframe을 사용해 코드를 실행하는 환경, Google Apps Script를 웹 사이트로 공개하고 있는 경우, Salesforce의 일부 기능 등이 동작하지 않게 되는 영향이 나오고 있다.
몇몇 웹사이트에 영향을 끼치는 변경으로 Chrome은 해당 내용을 2021년 8월 15일 까지 연기 했다(Reverse Origin Trial를 위한 유예 기간). 2022년 1월까지 연기 했다.

다른 브라우저도 역시 이 사양을 따를 예정이다.

자세한 내용은 다음 문서에도 정리돼 있으니 참고하길 바란다.


헤드라인


Headless UI v1.4: The One With Tabs – Tailwind CSS

blog.tailwindcss.com/headless-ui-v1-4

React Vue JavaScript library ReleaseNote

Headless UI 1.4 릴리스
Tag 컴포넌트 추가, DisclosuresPopover의 Panel 내에 Button을 두면 해당 버튼으로 Panel을 닫을 수 있도록 변경


Yarn 3.0 🚀🤖 Performances, ESBuild, Better Patches, ... - DEV Community 👩‍💻👨‍💻

dev.to/arcanis/yarn-3-0-performances-esbuild-better-patches-e07

yarn ReleaseNote

Yarn 3.0 릴리즈.
Node.js 10 지원 종료, .pnp.cjs로 이름 변경, @yarnpkg/pnpify를 세 개의 패키지로 분해.
exports 필드 지원, pnp 스러운 하드 링크 지원, 쉘 구문 지원 개선, ESBuild 지원 등.


Release 3.16.0 - 2021.07.30 · zloirock/core-js

github.com/zloirock/core-js/releases/tag/v3.16.0

JavaScript polyfill library ReleaseNote

core.js 3.16.0 릴리스.
Stage 3의 Array#findLast, Stage 1의 Array#filterOutArray#groupBy 지원.
Deno도 지원한다.


Node v16.6.0 (Current) | Node.js

nodejs.org/en/blog/release/v16.6.0/

node.js ReleaseNote

Node.js 16.6.0 릴리스.
V8 9.2로 업데이트, http2 보안 수정 등.


Recoil 0.4 | Recoil

recoiljs.org/blog/2021/07/30/0.4.0-release/

React JavaScript library ReleaseNote

Recoil 0.4 릴리스.
캐쉬 폴리쉬를 ₩cachePolicyUNSTABLE₩로 설정할 수 있고, 트랜잭션을 ₩useRecoilTransactionUNSTABLE₩으로 이용할 수 있다.
또, TypeScript의 타입 개선이 이뤄졌다.


Chromium Blog: Chrome 93: Multi-Screen Window Placement, PWAs as URL Handlers, and More

blog.chromium.org/2021/07/chrome-93-multi-screen-window-placement.html

Chrome ReleaseNote

Chrome 93 beta 릴리스.
Cross-Origin-Embedder-Policy:credentialless과 URL Handlers를 Origin Trial로 추가.
AbortSignal.abort() 메서드 지원, Stage 3의 Error cause와 Object.hasOwn 지원.
Client Hint Header의 Sec-CH-Prefers-Color-Scheme 추가, UA Client Hint 갱신 등.


1065085 - Implement window.{alert, prompt, confirm} removal from cross-origin iframes - chromium

bugs.chromium.org/p/chromium/issues/detail?id=1065085

Chrome security DOM news

Chrome 92에서 cross origin iframe에서의 alert / dialog / prompt가 동작하지 않는다.
회피 방법으로 opt-out Origin Trial(Chrome 95 까지만 유효한 방법), 직접 다이얼로그 UI를 만들기, postMessage를 사용해 부모 문서에서 다이얼 로그를 출력하는 방법 등에 대해서 이야기 나눈 스레드.


Release Version 16.7.0 · jsdom/jsdom

github.com/jsdom/jsdom/releases/tag/16.7.0

JavaScript DOM library ReleaseNote

jsdom 16.7.0 릴리스.
AbortSignal.abort() 지원, getBoundingClientRect()의 반환 값에 x, y 추가.
<textarea>의 개행 코드 노멀라이제이션을 사양에 맞춰서 변경.


아티클


How do Chrome extensions impact browser performance?

www.debugbear.com/blog/chrome-extension-performance-2021

browser Extension performance article

브라우저의 확장이 웹 사이트 성능에 어떤 영향을 주고 있는지 정리 및 소개.
CPU 부하, 첫 회 최초 렌더링에 주는 영향, 백그라운드에서의 CPU 처리, 메모리 소비량.
또, AdBlocker 확장과 관련한 내용도 구체적으로 정리돼 있다.


WebView2 and Electron | Electron Blog

www.electronjs.org/blog/webview2

Electron windows article

Electron과 Windows의 WebView2 아키텍처의 차이를 설명한다.


GraphQL 클라이언트로 urql를 추천하고 싶다(일본어)

zenn.dev/adwd/articles/f4c5c5120467bb

JavaScript GraphQL article

GraphQL 클라리언트 라이브러리 urql 소개.
응답을 캐시하는 구조와 방법에 대해서.


소프트웨어, 도구, 라이브러리


BlueBlazin/thislang: An implementation of a subset of javascript in that subset of javascript.

github.com/BlueBlazin/thislang

JavaScript AST language

JavaScript에서 동작하는 JavaScript 서브셋 구현체.


arcanis/clipanion: Type-safe CLI library with no runtime dependencies

github.com/arcanis/clipanion

JavaScript node.js console library TypeScript

CLI 용 커맨드 라인 인수 파서 라이브러리.
들여쓰기 된 커맨드 지원, typanion과 연계한 벨리데이션, help 지원 등.
Yarn에서 사용하고 있는 라이브러리 이기도 하다.


crcn/sift.js: Use Mongodb queries in JavaScript

github.com/crcn/sift.js

JavaScript library

JavaScript 객체를 MongoDB Query 스러운 문법이나 연산자로 검색할 수 있는 라이브러리.


Pull Request to this article
JSer.info Slackに参加する