puppeteer 13.5.2

puppeteer 13.5.2がリリースされました。

さっそくリリースノートを見ていきましょう。

Bug Fixes

・chromium downloading hung at 99%
・get extra headers from Fetch.requestPaused event

https://github.com/puppeteer/puppeteer/releases/tag/v13.5.2

今回はバグ修正のみでした。

puppeteerとは関係ないのですが、ついにChromeのバージョンが100(3ケタ)に到達しましたね。puppeteerが同梱しているChromiumは13.5.0で既にバージョン100になっています。

puppeteer 13.5.1

puppeteer 13.5.1がリリースされました。

さっそくリリースノートを見ていきましょう。

Bug Fixes

・waitForNavigation in OOPIFs

https://github.com/puppeteer/puppeteer/releases/tag/v13.5.1

今回はバグ修正のみでした。

ところで「OOPIFs」は「out-of-process iframes」の略です。即ちiframeを別のプロセスでレンダリングするという意味です。ご存知の通り、HTMLにはiframeを記述することで別のサイト(ドメイン)のページを表示することができます。

従来よりこれはセキュリティ上の問題となっていました。例えば、親ページで処理されている情報(クッキーだったりJavaScriptのオブジェクトだったり)を、セキュリティホールを突いてiframe側が意図しない方法で抜き出すようなことがありました。こういった問題を事前に回避するた、CORS(オリジン間リソース共有)などで明示的にリソースを共有する・しないを指定するようになったのです。

話を戻すと、HTMLやJavaScriptの世界では確かにデータが漏れないようにしていますが、それを更に強化する方法として考え出されたのがOOPIFsです。そもそもiframeを別の(ブラウザ)プロセスで処理させることで、メモリ空間を分けてしまうという考え方なわけです。

Webセキュリティを第一に考えているGoogleのChromiumならではの機能でした。そのうちChromeにも降りてくるんじゃないかと思います。

puppeteer 13.5.0

puppeteer 13.5.0がリリースされました。

さっそくリリースノートを見ていきましょう。

Features
chromium: roll to Chromium 100.0.4889.0

Bug Fixes
・Inherit browser-level proxy settings from incognito context
page: page.createIsolatedWorld error catching has been added
tests: ensure all tests honour BINARY envvar

https://github.com/puppeteer/puppeteer/releases/tag/v13.5.0

ついに Chromium 100 が来ました。これまでChrome含めてブラウザのバージョン番号は2ケタでしたが、ついにChromiumのバージョンが3ケタの大台に乗ったのです。User-Agentを見て分けるような処理で、バージョン番号を2ケタ決め打ちにしている場合に問題になっているようです。JavaScript等で処理するならば正規表現にしていたり、そもそもケタ数を意識しない(Stringにすればいい)言語なので問題になるケースは少ないでしょう。

puppeteer 13.4.1

puppeteer 13.4.1がリリースされました。

さっそくリリースノートを見ていきましょう。

Bug Fixes
・regression in –user-data-dir handling

https://github.com/puppeteer/puppeteer/releases/tag/v13.4.1

今回はバグ修正のみです。

ちなみにバグの内容は存在しないディレクトリを --user-data-dir に指定すると例外で落ちてしまうというもの(本来ならば新規ディレクトリが作成されます)。このオプションを指定することが稀だと思いますので、遭遇することはほとんどないでしょう。アップデートが可能ならば、対応しておきましょう。

puppeteer 13.4.0

puppeteer 13.4.0がリリースされました。

さっそくリリースノートを見ていきましょう。

Features
・add support for async waitForTarget
・export Frame._client through getter
・HTTPResponse: expose timing information
Bug Fixes
・change kill to signal the whole process group to terminate
・element screenshot issue in headful mode
・ensure dom binding is not called after detach
・use both __dirname and require.resolve to support different bundlers

https://github.com/puppeteer/puppeteer/releases/tag/v13.4.0

waitForTargetがasync対応したこと以外は特に大きな変更はないようです。

面白そうなものはHTTPResponseクラスにtiming()メソッドが追加されたことです。詳細はこちらを見てほしいのですが、HTTPレスポンスに要した様々な時間を見ることができます。通信や処理のボトルネックを探す際に役立つかもしれません。