Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
takenspc
4,604 views
WebIDLを見てみる
JSer.info 5周年記念イベント http://jser.connpass.com/event/24202/
Engineering
◦
Read more
6
Save
Share
Embed
Embed presentation
Download
Downloaded 12 times
1
/ 55
2
/ 55
3
/ 55
4
/ 55
5
/ 55
6
/ 55
7
/ 55
8
/ 55
9
/ 55
10
/ 55
11
/ 55
12
/ 55
13
/ 55
14
/ 55
15
/ 55
16
/ 55
17
/ 55
18
/ 55
19
/ 55
20
/ 55
21
/ 55
22
/ 55
23
/ 55
24
/ 55
25
/ 55
26
/ 55
27
/ 55
28
/ 55
29
/ 55
30
/ 55
31
/ 55
32
/ 55
33
/ 55
34
/ 55
35
/ 55
36
/ 55
37
/ 55
38
/ 55
39
/ 55
40
/ 55
41
/ 55
42
/ 55
43
/ 55
44
/ 55
45
/ 55
46
/ 55
47
/ 55
48
/ 55
49
/ 55
50
/ 55
51
/ 55
52
/ 55
53
/ 55
54
/ 55
55
/ 55
More Related Content
PDF
GitHubの機能を活用したGitHub Flowによる開発の進め方
by
Takeshi Mikami
PDF
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
by
Akihiro Suda
PDF
10分でわかる Cilium と XDP / BPF
by
Shuji Yamada
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PDF
LLVM最適化のこつ
by
MITSUNARI Shigeo
PDF
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
by
Kuniyasu Suzaki
PDF
明日使えないすごいビット演算
by
京大 マイコンクラブ
PDF
Valgrind tutorial
by
Satabdi Das
GitHubの機能を活用したGitHub Flowによる開発の進め方
by
Takeshi Mikami
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
by
Akihiro Suda
10分でわかる Cilium と XDP / BPF
by
Shuji Yamada
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
LLVM最適化のこつ
by
MITSUNARI Shigeo
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
by
Kuniyasu Suzaki
明日使えないすごいビット演算
by
京大 マイコンクラブ
Valgrind tutorial
by
Satabdi Das
What's hot
PPTX
MediaRecorder と WebM で、オレオレ Live Streaming
by
mganeko
PDF
Keycloak拡張入門
by
Hiroyuki Wada
PDF
IETF111 RATS: Remote Attestation ProcedureS 報告
by
Kuniyasu Suzaki
PPTX
インフラエンジニアのお仕事 ~ daemontools から systemdに乗り換えた話 ~
by
KLab Inc. / Tech
PPTX
急速に進化を続けるCNIプラグイン Antrea
by
Motonori Shindo
PPTX
フロー技術によるネットワーク管理
by
Motonori Shindo
PPTX
WebRTC SFU Mediasoup Sample update
by
mganeko
PDF
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
by
Hiro H.
PDF
VMware Horizon へ YubiKey を使って認証をキメる話
by
Wataru Unno
PDF
eStargzイメージとlazy pullingによる高速なコンテナ起動
by
Kohei Tokunaga
PDF
TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術
by
Hiroaki Nagashima
PDF
UE4とUnrealC++について
by
Masahiko Nakamura
PDF
TRICK 2022 Results
by
mametter
PDF
ワタシはSingletonがキライだ
by
Tetsuya Kaneuchi
PDF
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
by
Akihiro Suda
PDF
Interrupt Affinityについて
by
Takuya ASADA
PPTX
Abusing Microsoft Kerberos - Sorry you guys don't get it
by
Benjamin Delpy
PDF
20分くらいでわかった気分になれるC++20コルーチン
by
yohhoy
PPTX
YoctoをつかったDistroの作り方とハマり方
by
wata2ki
PDF
Cilium - Container Networking with BPF & XDP
by
Thomas Graf
MediaRecorder と WebM で、オレオレ Live Streaming
by
mganeko
Keycloak拡張入門
by
Hiroyuki Wada
IETF111 RATS: Remote Attestation ProcedureS 報告
by
Kuniyasu Suzaki
インフラエンジニアのお仕事 ~ daemontools から systemdに乗り換えた話 ~
by
KLab Inc. / Tech
急速に進化を続けるCNIプラグイン Antrea
by
Motonori Shindo
フロー技術によるネットワーク管理
by
Motonori Shindo
WebRTC SFU Mediasoup Sample update
by
mganeko
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
by
Hiro H.
VMware Horizon へ YubiKey を使って認証をキメる話
by
Wataru Unno
eStargzイメージとlazy pullingによる高速なコンテナ起動
by
Kohei Tokunaga
TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術
by
Hiroaki Nagashima
UE4とUnrealC++について
by
Masahiko Nakamura
TRICK 2022 Results
by
mametter
ワタシはSingletonがキライだ
by
Tetsuya Kaneuchi
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
by
Akihiro Suda
Interrupt Affinityについて
by
Takuya ASADA
Abusing Microsoft Kerberos - Sorry you guys don't get it
by
Benjamin Delpy
20分くらいでわかった気分になれるC++20コルーチン
by
yohhoy
YoctoをつかったDistroの作り方とハマり方
by
wata2ki
Cilium - Container Networking with BPF & XDP
by
Thomas Graf
Similar to WebIDLを見てみる
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
by
miso- soup3
PDF
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
by
Toru Kawamura
PDF
Web API入門
by
Masao Takaku
PDF
猫でも分かる Android WebKit
by
Naruto TAKAHASHI
PDF
Concentrated HTML5 & Attractive HTML5
by
Sho Ito
PPTX
HTML5最新動向
by
Shumpei Shiraishi
PDF
JavaScript And Keywords
by
uupaa
PPTX
HTML5&API総まくり
by
Shumpei Shiraishi
PDF
デバイス WebAPI設計の進め方
by
Device WebAPI Consortium
PDF
Kilimanjaro Event
by
dynamis
PDF
Web on Kernel
by
dynamis
PDF
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
by
Akira Inoue
PDF
Firefox OS - Blaze Your Own Path
by
dynamis
PDF
Browser and Mozilla
by
dynamis
PDF
ASP.NET WebAPI 体験記 #clrh99
by
Katsuya Shimizu
PDF
Web is the OS (Firefox OS)
by
dynamis
PDF
Mobile Web
by
Makoto Kato
PDF
マイクロソフトにとってのWebって?
by
Microsoft
ODP
HTML5 のお話
by
tomo_masakura
PPTX
HTML5とWeb開発に関する最新動向
by
Shumpei Shiraishi
50分で掴み取る ASP.NET Web API パターン&テクニック
by
miso- soup3
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
by
Toru Kawamura
Web API入門
by
Masao Takaku
猫でも分かる Android WebKit
by
Naruto TAKAHASHI
Concentrated HTML5 & Attractive HTML5
by
Sho Ito
HTML5最新動向
by
Shumpei Shiraishi
JavaScript And Keywords
by
uupaa
HTML5&API総まくり
by
Shumpei Shiraishi
デバイス WebAPI設計の進め方
by
Device WebAPI Consortium
Kilimanjaro Event
by
dynamis
Web on Kernel
by
dynamis
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
by
Akira Inoue
Firefox OS - Blaze Your Own Path
by
dynamis
Browser and Mozilla
by
dynamis
ASP.NET WebAPI 体験記 #clrh99
by
Katsuya Shimizu
Web is the OS (Firefox OS)
by
dynamis
Mobile Web
by
Makoto Kato
マイクロソフトにとってのWebって?
by
Microsoft
HTML5 のお話
by
tomo_masakura
HTML5とWeb開発に関する最新動向
by
Shumpei Shiraishi
Recently uploaded
PDF
krsk_aws_re-growth_aws_devops_agent_20251211
by
uedayuki
PDF
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ...
by
dots.
PDF
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】
by
dots.
PDF
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境
by
Masahiro Takechi
PPTX
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx
by
rintakano624
PDF
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研
by
yohakugiken
krsk_aws_re-growth_aws_devops_agent_20251211
by
uedayuki
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ...
by
dots.
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】
by
dots.
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境
by
Masahiro Takechi
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx
by
rintakano624
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研
by
yohakugiken
WebIDLを見てみる
1.
WebIDL を見てみる ブラウザーに実装されている API
を知りたい @Takenspc
2.
内容 ● 背景 ● WebIDL を見てみる ● まとめ
3.
背景 ● ブラウザーで使える API :たくさんある –
新たな API が生まれる – 途中で API が変わる ● 実際に使える API は何なのか、知りたい
4.
Specifications BrowserContent ??? ??? ??? ??? ???
5.
例えば、こう書ける? const url =
new URL('…?foo=0&bar=1'); for (const param of url.searchParams) { console.log(param[0], param[1]); }
6.
http://caniuse.com/#search=URLSearchParams
7.
https://dev.windows.com/en-us/microsoft-edge/platform/status/urlapi
8.
https://developer.mozilla.org/en-US/docs/Web/API/URL
9.
実際のところ… Chrome Firefox IE
Safari URL.searchParams N/A 29+ N/A N/A URLSearchParams 49+ 29+ N/A N/A @@iterator 49+ 44+ N/A N/A
10.
現状 ● ブラウザーの実装とドキュメントが分離 – 粒度や作成・更新頻度がニーズと異なる場合も
11.
ブラウザーの実装は…? ● ブラウザーも誰かが書いてるはず
12.
Specifications BrowserContent ??? ??? ??? ??? ???
13.
結論から言うと ● 主なブラウザーの開発では WebIDL からイン タフェースを機械生成 ● WebIDL
は各仕様が定義
14.
Specifications BrowserContent WebIDL WebIDL
15.
Specifications BrowserContent Available Behind a flag Not
compiled Not implemented WebIDL WebIDL
16.
WebIDL ● Web 技術向け IDL –
ECMAScript に特化
17.
https://heycam.github.io/webidl/
18.
WebIDL ● 仕様とブラウザーの共通言語の 1 つ –
共通言語なので比較可能
19.
WebIDL を見てみる ● 仕様( URL
Standard ) ● Web Platform Tests ● Gecko ● Chromium ● WebKit
20.
https://url.spec.whatwg.org/#api
21.
[Constructor(USVString url, optional
USVString base), Exposed=(Window,Worker)] interface URL { static USVString domainToASCII(USVString domain); static USVString domainToUnicode(USVString domain); stringifier attribute USVString href; readonly attribute USVString origin; attribute USVString protocol; … attribute USVString search; readonly attribute URLSearchParams searchParams; attribute USVString hash; }; URL Standard
22.
[Constructor(USVString url, optional
USVString base), Exposed=(Window,Worker)] interface URL { static USVString domainToASCII(USVString domain); static USVString domainToUnicode(USVString domain); stringifier attribute USVString href; readonly attribute USVString origin; attribute USVString protocol; … attribute USVString search; readonly attribute URLSearchParams searchParams; attribute USVString hash; }; コンストラクタ インタフェース名 仮引数 URL Standard
23.
[Constructor(USVString url, optional
USVString base), Exposed=(Window,Worker)] interface URL { static USVString domainToASCII(USVString domain); static USVString domainToUnicode(USVString domain); stringifier attribute USVString href; readonly attribute USVString origin; attribute USVString protocol; … attribute USVString search; readonly attribute URLSearchParams searchParams; attribute USVString hash; }; 戻り値の型 メソッド名 仮引数 URL Standard
24.
[Constructor(USVString url, optional
USVString base), Exposed=(Window,Worker)] interface URL { static USVString domainToASCII(USVString domain); static USVString domainToUnicode(USVString domain); stringifier attribute USVString href; readonly attribute USVString origin; attribute USVString protocol; … attribute USVString search; readonly attribute URLSearchParams searchParams; attribute USVString hash; }; 型 プロパティ名 URL Standard
25.
[Constructor(USVString url, optional
USVString base), Exposed=(Window,Worker)] interface URL { static USVString domainToASCII(USVString domain); static USVString domainToUnicode(USVString domain); stringifier attribute USVString href; readonly attribute USVString origin; attribute USVString protocol; … attribute USVString search; readonly attribute URLSearchParams searchParams; attribute USVString hash; }; URL Standard
26.
https://github.com/w3c/web-platform-tests/blob/master/url/interfaces.html
27.
https://dxr.mozilla.org/mozilla-central/source/dom/webidl/URL.webidl
28.
[…] interface URL { … […]
attribute USVString search; readonly attribute URLSearchParams searchParams; … }; Gecko
29.
https://chromium.googlesource.com/chromium/src/+/master/third_party/WebKit/Source/core/dom/URL.idl
30.
[Constructor(USVString url, optional
USVString base), Exposed=(Window,Worker), …] interface URL { … […] static DOMString? createObjectURL(Blob blob); […] static void revokeObjectURL(DOMString url); }; URL implements URLUtils; Chromium
31.
[Constructor(USVString url, optional
USVString base), Exposed=(Window,Worker), …] interface URL { … […] static DOMString? createObjectURL(Blob blob); […] static void revokeObjectURL(DOMString url); }; URL implements URLUtils; Chromium
32.
https://chromium.googlesource.com/chromium/src/+/master/third_party/WebKit/Source/core/dom/URLUtils.idl
33.
[…] interface URLUtils { … attribute
USVString search; // Not yet implemented. // attribute URLSearchParams searchParams; … }; Chromium
34.
http://trac.webkit.org/browser/trunk/Source/WebCore/html/DOMURL.idl
35.
http://trac.webkit.org/browser/trunk/Source/WebCore/html/URLUtils.idl
36.
WebIDL を比較するには ● 継承などの解決 ● Extended attributes
( [ と ] の間)
37.
URL Standard
38.
Gecko
39.
Chromium
40.
WebKit
41.
まとめ ● WebIDL は仕様とブラウザーの共通言語の 1 つ ● API
の実装状況が知りたい: WebIDL も参考になるかも
42.
ご清聴ありがとうございました
43.
おまけ ● URL 関連 API
の変化 ● WebIDL である必然性 ● WebIDL の仕様と実際の WebIDL ● 実際にコンパイルされる WebIDL の推定
44.
URL 関連 API
の変化 ● 仕様( URL Standard ) – 2015 年夏頃まで: URL.href や HTMLAnchor.href 、 Location.href などを URLUtils にまとめる – 2015 年夏以降: URLUtils などにまとめることを 断念
45.
URLUtils URLUtilsSearchParams URLUtilsReadOnlyWorkerLocation HTMLAnchorElement HTMLAreaElement Location URL 仕様( 2015 年夏ごろまで)
46.
HTMLHyperlinkElementUtils WorkerLocation HTMLAnchorElement HTMLAreaElement Location URL 仕様( 2016 年
1 月)
47.
URL 関連 API
の変化 ● ブラウザーの実装 – Gecko : 45 で仕様に合わせて更新 ( Bug 121385) – Chromium :今後仕様に合わせて更新? ( dff906e) – WebKit :?
48.
HTMLHyperlinkElementUtils URLUtilsReadOnlyWorkerLocation HTMLAnchorElement HTMLAreaElement Location URL Gecko
49.
URLUtils URLUtilsReadOnlyWorkerLocation HTMLAnchorElement HTMLAreaElement Location URL Chromium
50.
URLUtils WorkerLocation HTMLAnchorElement HTMLAreaElement Location URL WebKit
51.
WebIDL である必然性 ● WebIDL の構文は
ECMAScript とは別物 – WebIDL でインタフェースを定義する必然性はない ● Ecmarkup を使っている仕様 https://streams.spec.whatwg.org/
52.
WebIDL の仕様と実際の WebIDL ● 仕様に書かれている
WebIDL – 古い WebIDL 仕様をもとに書かれている ● ブラウザーの開発に使われている WebIDL – 古い WebIDL 仕様をもとに書かれている – 独自拡張が施されている
53.
Foo[] → FronzenArray<Foo> ● https://lists.w3.org/Archives/Public/pu blic-webapps/2015JulSep/0165.html –
WebIDL の仕様が変わったよ – それぞれの仕様に書かれている WebIDL も更新し よう ● まだ終わっていない
54.
ブラウザーの WebIDL ● MDN: Information
contained in a WebIDL f fle ● WebIDL in Blink ● WebKitIDL
55.
ビルドされる WebIDL の推定 ● どの機能がビルドされるかの推定が面倒 –
実際にビルドするのも面倒… ● ( Gecko )ランタイムフラグの推定が面倒 – Worker.webidl – mozilla::dom::workers::WorkerPrivate::Work erAvailable
Download