Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
WebDriver BiDi 2025年のふりかえり
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
nus3
January 08, 2026
Technology
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
WebDriver BiDi 2025年のふりかえり
nus3
January 08, 2026
More Decks by nus3
See All by nus3
フロントエンド刷新 4年間の軌跡
yotahada3
0
1.8k
Playwrightはどのようにクロスブラウザをサポートしているのか
yotahada3
9
3.1k
DenoでOpenTelemetryに入門する
yotahada3
2
700
WebDriver BiDiとは何なのか
yotahada3
1
1.2k
コンポーネントテストの手法と その効果を考える
yotahada3
8
2.1k
フロントエンドクイズ大会
yotahada3
0
190
Node.jsのWorker threadsの話
yotahada3
1
1.7k
ワタシとPodcast
yotahada3
2
2.5k
Do you like Storybook?
yotahada3
2
4.8k
Other Decks in Technology
See All in Technology
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
5
690
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
33
31k
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
710
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
240
CLIライブラリ開発を支える技術
htnabe
0
150
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
11
5.1k
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
160
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
30
19k
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
180
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
110
安心して変更できるWebフロントエンドの作り方
pirosikick
5
2.9k
人間はどの意思決定を手放せるのか
kawasima
15
8k
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Become a Pro
speakerdeck
PRO
31
6.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
530
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
560
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
WCS-LA-2024
lcolladotor
0
830
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
570
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
820
Site-Speed That Sticks
csswizardry
13
1.5k
Visualization
eitanlees
152
17k
Transcript
2026/01/09 BuriKaigi 2026 WebDriver BiDi 2025年のふりかえり
nus3(なすさん)
去年もBuriKaigi 参加させてもらいました!
去年話したこと WebDriver BiDiとはそもそも何なのか話しました
あれから1年経ち
WebDriver BiDiは どうなったのか
今日話したいこと WebDriver BiDiおさらい 仕様の更新 ブラウザの実装状況
今日話したいこと WebDriver BiDiおさらい 仕様の更新 ブラウザの実装状況
そもそもWebDriverとは WebDriver Bidiおさらい https://www.w3.org/TR/webdriver1/ 別プロセスからブラウザ操作するための標準仕様 2018年に勧告(Recommendation) クライアントとDriver間は でやり取り HTTP
WebDriver BiDiとは WebDriverを拡張したブラウザ操作のための 双方向プロトコル Bidirectional WebDriver Protocol クライアントとDriver間は を介した 双方向通信
Browser Testing and Tools Working Groupで仕様策定 が進められる consoleへの直接のアクセスや ネットワークのインターセプトが可能 WebSocket WebDriver Bidiおさらい
WebDriver Bidiおさらい https://people.igalia.com/lmoura/wkcm-2024/webdriver-bidi-webkit.html#/2/2 https://people.igalia.com/lmoura/wkcm-2024/webdriver-bidi-webkit.html#/3/2
WebDriver Bidiおさらい https://people.igalia.com/lmoura/wkcm-2024/webdriver-bidi-webkit.html#/2/2 https://people.igalia.com/lmoura/wkcm-2024/webdriver-bidi-webkit.html#/3/2 WebSocketによる双方向通信で リアルタイムでブラウザのイベントを 受け取れるように WebDriver Bidiおさらい
それ以外にも WebDriver Bidiおさらい
WebDriver BiDiで拡張されたモジュール WebDriver Bidiおさらい network ブラウザで発生するリクエストとレスポンスへの介入 script Window作成時に実行できるPreload Script 指定した関数の実行
log ブラウザで発生するログ(console.logやエラーなど)を リアルタイムで取得 storage, input, webExtension, emulationなどなど
WebDriver BiDiのステータス 2024年11月にWorking Draftで公開 去年のBuriKaigi(2025年2月)でEditor’s Draftと紹介 してたが、実はWorking Draftだった WebDriver Bidiおさらい
https://www.w3.org/standards/history/webdriver-bidi/
WebDriver BiDiのステータス WebDriver Bidiおさらい https://www.w3.org/standards/types/#x1-summary Web標準化のプロセスに 入ったが まだまだ策定中の状態
WebDriver BiDiの現状って? Working Draftってことは、仕様も更新されてるの? 仕様の策定に合わせて、ブラウザの実装状況って どうなっとる? WebDriver Bidiおさらい
ということで2025年に 仕様、ブラウザに どんな変化があったか 追ってみよう
今日話したいこと WebDriver BiDiとは 仕様の更新 ブラウザの実装状況
仕様の更新を見る前に 仕様の更新
WebDriver BiDiの仕様について Commands クライアントからブラウザへのリクエスト Events ブラウザからクライアントへ送信される通知 Modules 関連するcommandsとeventsをまとめた機能単位 仕様の更新
Modules Claudeさんに作ってもらった、Modulesのざっくり図 仕様の更新
Commands 仕様の更新 クライアントからブラウザへリクエストされる非同期操作 https://www.w3.org/TR/webdriver-bidi/#protocol-definition 例:
Events 仕様の更新 ブラウザからクライアントへ送信される非同期通知 https://www.w3.org/TR/webdriver-bidi/#protocol-definition 例:
さて本題 2025年、仕様には どんな更新があったか 仕様の更新
W3Cのリポジトリを見てみる 仕様の更新 https://github.com/w3c/webdriver-bidi/pulls?page=1&q=is%3Apr+is%3Amerged+merged%3A2025-01-01..2025-12-31 110件のプルリクがマージ
余談 仕様の更新 ClaudeさんにChrome DevTool MCP使って、プルリクをまとめてもらった
2025年に追加されたもの 仕様の更新 ブラウザAPIをエミュレートする 位置情報、userAgent、JSの有効/無効などを オーバーライド emulationモジュールとして最初に追加されたプルリク ユーザーからのよくある要望として geolocationをシミュレートしたいというissueから emulation.setGeolocationOverrideコマンドが 追加された
https://github.com/w3c/webdriver-bidi/pull/888 emulationモジュールが追加
2025年に追加されたもの 仕様の更新 ダウンロード時の動作を制御するコマンド 指定したフォルダかdefaultか ダウンロードできないようにするかを選択できる PuppeteerとCDPにはあった機能 browser.setDownloadBehaviorコマンドの追加 https://github.com/w3c/webdriver-bidi/pull/970
2025年に追加されたもの 仕様の更新 ナビゲーションによってドキュメントが ロードされた時に発火するイベント Playwrightからのリクエスト browsingContext.navigationCommittedイベントの追加 https://github.com/w3c/webdriver-bidi/pull/855
従来のWebDriverにはなく CDPや他ツールにある機能や 要望がある機能が 仕様に追加されていた 仕様の更新
続いて ブラウザの実装状況を 追いかける
今日話したいこと WebDriver BiDiとは 仕様の更新 ブラウザの実装状況
web-platform-testsから 各ブラウザの現状を知る ブラウザの実装状況
web-platform-tests(wpt)とは Webプラットフォームにおけるテストケースのまとまり WHATWGやW3Cで策定された仕様をカバー web-platform-testsにあるテストケースの結果を wtp.fyiでダッシュボードとして公開 Chrome, Edge, Firefox, Safariなどを対象に定期的に テストを実行
ブラウザの実装状況
wptのダッシュボード https://wpt.fyi/results テスト結果がわかるダッシュボード ブラウザの実装状況
wpt その他 ブラウザの実装状況 https://wpt.fyi/runs https://wpt.fyi/interop-2025 定期的にテストが実行 Interopの結果とかも見れる
wptのテストの種類 wptのテストにはいくつかのアプローチがある ブラウザの実装状況 https://web-platform-tests.org/test-suite-design.html#test-types Rendering testharness.js JSが期待通りに動作するか wdspec WebDriver系のテスト manual
wpt: wdspec ブラウザの実装状況 https://web-platform-tests.org/writing-tests/wdspec.html WebDriver、WebDriver BiDiを対象にしたテスト Pythonとpytestを採用 wptリポジトリ内にWebDriverクライアント(tools/webdriver)がある このクライアントがBiDiにも対応
wptにあるWebDriver BiDiの テストケースを実際にみてみよう ブラウザの実装状況
WebDriver BiDiのテストケース ブラウザの実装状況 wptリポジトリのwebdriver/tests/bidi にBiDi用のテストケースがある でディレクトリが作られている webdriver/tests/bidi/{MODULE}/{METHOD} https://github.com/web-platform-tests/wpt/tree/master/webdriver/tests/bidi
WebDriver BiDiのテストケース BiDiでは機能のまとまりがModule、その中に関連するCommandsとEventsがある ブラウザの実装状況
WebDriver BiDiのテストケース ブラウザの実装状況 script.evaluate コマンドの場合 指定された実行環境で、指定したスクリプトを実行するコマンド webdriver/tests/bidi/script/evaluate にテストケースがある https://github.com/web-platform-tests/wpt/blob/master/webdriver/tests/bidi/script/evaluate/evaluate.py pythonやpytestがわからなくても
どんなテストしてるか 大体わかる
WebDriver BiDiの wptのテスト結果や如何に ブラウザの実装状況
WebDriver BiDiのテスト結果 ブラウザの実装状況 https://wpt.fyi/results/webdriver/tests/bidi
WebDriver BiDiのテスト結果 ブラウザの実装状況 https://wpt.fyi/results/webdriver/tests/bidi Chrome、Firefoxでは多くのテストケースにパスしてる Safariでは、テストケースがほとんどパスしていない
ということで 各ブラウザの事情を 追ってみる ブラウザの実装状況
Firefox fxdx.devでWebDriver Newsletterを定期的に公開 WebDriver NewsletterからBiDiのアップデート情報を キャッチアップできる ブラウザの実装状況 https://fxdx.dev/
Firefox 2024年に追加されたwebExtensionモジュールのコマンドに対応 2025年に追加されたemulationモジュールのコマンドである emulation.setGeolocationOverrideの対応 2025年に追加されたbrowsingContext.navigationCommittedイベントの対応 https://fxdx.dev/firefox-webdriver-newsletter-137/ https://fxdx.dev/firefox-webdriver-newsletter-139/ https://fxdx.dev/firefox-webdriver-newsletter-140/ ブラウザの実装状況 新しく追加、更新された仕様の実装を進めている印象
Firefox 2024年からChrome Devtools Protocol(CDP)のサポートを廃止することは アナウンスされていた 2025年になってFirefox 141で完全に廃止 Firefoxで CDPを使っているツールはWebDriver BiDiへの移行を強く推奨
ブラウザの実装状況 FirefoxでのChrome Devtools Protocol(CDP)サポートを 完全に廃止 https://fxdx.dev/deprecating-cdp-support-in-firefox-embracing-the-future-with-webdriver-bidi/ Firefoxでは今後も積極的にBiDi対応をしていきそう
FirefoxのCDPサポートについて ちょっと寄り道 ブラウザの実装状況 そして、去年のBurikaigiでした内容と被る話
ブラウザテストの自動化のこれまで ブラウザの実装状況 https://developer.chrome.com/blog/test-automation-evolution 外部プロセスからブラウザ操作するにはWebDriverとCDPの選択肢があった CDPはChrome DevToolsとデバッグ用に設計 がPuppeteerはCDPを採用 CDPはデバッグに対応するため、WebDriverよりも低レベルな制御をサポート
FirefoxのCDPサポートについて ブラウザの実装状況 2019年、FirefoxでPuppeteerの試験的なサポート この時に、MozillaはFirefoxにCDPのサブセットを実装 し、これまで運用してきた
FirefoxのCDPサポートについて ブラウザの実装状況 当時の議論をしっかりとは追えてないのですが FirefoxでのCDPサポートにChromeチームもMozillaも課題を感じてた Chrome Devtoolsの要件に依存する CDPは標準仕様ではないので、ChromeチームとMozillaで都度コミュニ ケーションが必要 これがWebDriver BiDiができるきっかけ
ということが記事には記載されてる https://developer.chrome.com/blog/firefox-support-in-puppeteer-with-webdriver-bidi
寄り道から戻って Chromeへ ブラウザの実装状況
Chrome そもそもChromiumではBiDiとCDP間を変換する JSレイヤーがある ブラウザの実装状況 https://docs.google.com/document/d/1VfQ9tv0wPSnb5TI-MOobjoQ5CXLnJJx9F_PxOMQc8kY/edit?tab=t.0 https://github.com/GoogleChromeLabs/chromium-bidi?tab=readme-ov-file#how-does-it-work
Chrome ChromiumでのBiDi実装はchromium-bidiリポジトリに ある ブラウザの実装状況 https://github.com/GoogleChromeLabs/chromium-bidi
Chrome ブラウザの実装状況 2024年に追加されたwebExtensionモジュールのコマンドに対応 2025年に追加されたemulationモジュールのコマンドである emulation.setGeolocationOverrideの対応 2025年に追加されたbrowsingContext.navigationCommittedの対応 https://github.com/GoogleChromeLabs/chromium-bidi/pull/3012 https://github.com/GoogleChromeLabs/chromium-bidi/pull/3311 https://github.com/GoogleChromeLabs/chromium-bidi/pull/3057 Firefox同様、新しく追加、更新された仕様の実装を
進めている印象
Chrome 例えばemulation.setGeolocationOverrideの場合 CDPに全く同じコマンド(methods)がある コマンドの引数も一緒 CDPにも同様の機能がある場合、新しい仕様への対応コストは低そう? ブラウザの実装状況 https://www.w3.org/TR/webdriver-bidi/#command-emulation-setGeolocationOverride https://chromedevtools.github.io/devtools-protocol/tot/Emulation/#method-setGeolocationOverride
最後に気になる Safari ブラウザの実装状況
wptを見てみると ブラウザの実装状況 現状、Safariでは1つしかWebDriver BiDiのテストケースは 成功していない... https://wpt.fyi/results/webdriver/tests/bidi
Safariではそう、ただ、WebKitでは ブラウザの実装状況 何も対応してないわけではなさそう WebKitのリポジトリにはBiDi関連のプルリクがマージされてる https://github.com/WebKit/WebKit/pulls?page=2&q=is%3Apr+is%3Amerged+WebDriver+Bidi+in%3Atitle
WebKit ブラウザの実装状況 Selenium Conference 2025でIgaliaのLauroさんのセッションで WebKitでのWebDriver BiDiの実装状況に言及 https://www.slideshare.net/slideshow/advancing-webdriver-bidi-support-in-webkit/281229125#1
このセッションの内容 からWebKitでの実装状況を 見てみる ブラウザの実装状況
WebKit WebKitはクロスプラットフォームに対応した OSSのレンダリングエンジン プラットフォームやOS固有の処理に対応したportがある WebKit公式のportが以下 ブラウザの実装状況 https://docs.webkit.org/Ports/Introduction.html
WebKit Igaliaは以下二つのLinux向けのPortをメンテンナンス している WebKitGTK GNOMEと呼ばれるGUIのデスクトップ環境で採用 WPE WebKit: 組み込みデバイス向け IgaliaのチームがWebKitGTK/WPE WebKitを対象に
2024年からWebDriver BiDiの実装を開始 ブラウザの実装状況
WebKit wptを見てもWebKitGTKであればパスしている テストケースも増えている ブラウザの実装状況 https://wpt.fyi/results/webdriver/tests/bidi?label=master&label=experimental&product=safari&product=webkitgtk&aligned
WebKit Safariはというと... 10月に行われたWebKit Contributors Meetingの議事録が slackに残っていた safaridriverでのBiDiがまだ利用できない safaridriverがSafariと通信するために独自の server/networkライブラリを使っていることに起因 ブラウザの実装状況
まとめ
2025年のふりかえり emulationという新しいモジュールが仕様に追加 新しいコマンドやイベントも仕様に追加 Chrome、Firefoxでは追加、更新があった仕様の 実装が進む IgaliaによってWebKitでもBiDiの実装が開始 (2024年から) 現時点ではSafariではまだBiDiが利用できない
2026年の予想 Roadmapに記載されているE2Eシナリオの大部分の仕様は詰められてそう https://github.com/w3c/webdriver-bidi/blob/main/roadmap.md emulationモジュールはこのシナリオには記載されていない 今後も需要がありそうなシナリオをカバーする仕様が追加されそう? 2026年中には、完全ではなくても部分的にSafariでBiDiを 試せるようになるのでは? Special Thanks togami2864さん
(WebKitの動向教えてくれて、ありがとうございました)
力尽きた話 ツールの対応状況 CypressでFirefoxを操作する時、デフォルトでBiDiを使用 Puppeteer、Selenium、WebDriverIO、CypressでBiDi試してみる PlaywrightのBiDi対応が表に出ない理由 BiDiの仕様を読んで面白そうな話(2025年関係ないけど) Sandboxed Script Execution script.evaluateコマンドなどで、sandbox引数を指定すると、
sandbox用のRealmでスクリプトが実行できる?