Web IDL

Web IDL

[62] Web IDL は、 DOM その他の API の記述に使われる言語です。 仕様書としての Web IDL には、その言語自体の定義に加え、 Web IDL の記述と JavaScript の処理との対応関係や、 Web における JavaScriptAPI として実装するべき機能が規定されています。

仕様書

概念

[80]

JavaScript 束縛

[63] DOM APIWeb IDL によって定義されていて、 Web IDLJavaScript の対応関係は Web IDL 仕様書で定義されています。

[64] いくつかの機能は Web IDL だけで記述できず、直接 JavaScript の概念を参照して定義されています。

互換性

[59] 記述言語としての Web IDL は不特定多数の著者が直接使う機能ではないので、 しばしば非互換変更が行われます。通常の Web 技術とは違って、 必要の無い機能は積極的に削除されます。

[60] Web IDL の改訂と Web IDL を使う各仕様の改訂は、必ずしも同期していません。 Web IDL に追加される見込みの (または追加してほしいと希望している) 機能が各仕様で使われることもあります。各仕様でまだ使われている機能が Web IDL から削除されることもあります。

歴史

W3C DOM 時代

[69] W3C DOMOMG IDL を使っていました。各仕様書には附属書として Java束縛およびECMAScript束縛が規定されていましたが、 特に後者は曖昧でほとんど意味をなさないものでした。

HTML5

[70] WF2, WA1, XBL2 といった初期 WHATWG 世代の仕様書では、 一部例外的な機能について、 JavaScript でどのように実装するべきかの規定を含んでいました。 しかし IDLJavaScript との基本的な対応関係が規定されていない以上、 曖昧なものとならざるを得ませんでした。 Ian Hickson は、 いずれそれを明確化する必要があると予定していました。

Web IDL

[1] WebIDL and HTML5 (Ian Hickson <ian@...> 著, 2008-05-06 11:04:39 +09:00 版) http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/14004 (名無しさん)

[2] Web IDL (2008-07-01 10:07:08 +09:00 版) http://dev.w3.org/cvsweb/~checkout~/2006/webapi/WebIDL/Overview.html?content-type=text/html;%20charset=utf-8 (名無しさん)

[3] Web IDL ( 版) http://www.w3.org/TR/2008/WD-WebIDL-20080829/

[4] Web IDL ( 版) http://www.w3.org/TR/2008/WD-WebIDL-20081219/

[5] WebIDL roadmap? (Dominique Hazael-Massieux 著, 版) http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/1095.html

[6] Re: WebIDL roadmap? (Cameron McCormack 著, 版) http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/1101.html

[7] public-script-coord@w3.org Mail Archives ( 版) http://lists.w3.org/Archives/Public/public-script-coord/

[8] Fwd: Web IDL Garden Hose (Mark S. Miller 著, 版) http://lists.w3.org/Archives/Public/public-script-coord/2009JulSep/0002.html

[9] Index of /2006/webapi/WebIDL/dom ( 版) http://dev.w3.org/2006/webapi/WebIDL/dom/

[10] Don’t call me DOM » WebIDL checker ( 版) http://people.w3.org/~dom/archives/2009/07/webidl-checker/

[11] IRC logs: freenode / #whatwg / 20091008 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20091008#l-436

[12] [whatwg] Java language bindings for HTML5 ( 版) http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2010-August/027577.html

[13] IRC logs: freenode / #whatwg / 20100909 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20100909

[14] Web IDL ( ( 版)) http://www.w3.org/TR/2010/WD-WebIDL-20101021/

[15] IRC logs: freenode / #whatwg / 20101019 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20101019#l-1110

[16] Web IDL ( ( 版)) http://www.w3.org/TR/2011/WD-WebIDL-20110712/

[17] RfC: Last Call Working Draft of Web IDL; deadline October 18 ( (Arthur Barstow 著, 版)) http://lists.w3.org/Archives/Public/public-script-coord/2011JulSep/0467.html

[18] IRC logs: freenode / #whatwg / 20111116 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20111116

[19] Java language binding for Web IDL ( ( 版)) http://www.w3.org/TR/2012/WD-WebIDL-Java-20120207/

[20] Web IDL ( ( 版)) http://www.w3.org/TR/2012/WD-WebIDL-20120207/

[21] Device APIs - Design Patterns & Guidelines ( ( 版)) http://dev.webinos.org/specifications/draft/patterns.html

[22] Web IDL ( ( 版)) http://www.w3.org/TR/2012/CR-WebIDL-20120419/

[23] Web API Design Cookbook ( ( 版)) http://www.w3.org/TR/2012/NOTE-api-design-20121002/

[24] Web API Design Cookbook ( ( 版)) http://darobin.github.com/api-design-cookbook/

[25] IRC logs: freenode / #whatwg / 20121204 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20121204

[26] Web IDL: Defining Web APIs and Implementing JavaScript Bindings ( ( 版)) http://mcc.id.au/2013/lca-webidl/

[27] IRC logs: freenode / #whatwg / 20130430 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20130430#l-385

[28] Java language binding for Web IDL ( ( 版)) http://www.w3.org/TR/2013/NOTE-WebIDL-Java-20130514/

[29] CfC: publish Java bindings for WebIDL as a WG Note; deadline May 4 ( (Arthur Barstow 著, 版)) http://lists.w3.org/Archives/Public/public-webapps/2013AprJun/0398.html

[30] IRC logs: freenode / #whatwg / 20071003 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20071003

[31] IRC logs: freenode / #whatwg / 20130620 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20130620

[32] Web IDL in Blink - The Chromium Projects ( ( 版)) http://www.chromium.org/blink/webidl

[33] Blink IDL Extended Attributes - The Chromium Projects ( ( 版)) http://www.chromium.org/blink/webidl/blink-idl-extended-attributes

[34] WebKitIDL – WebKit ( ( 版)) http://trac.webkit.org/wiki/WebKitIDL

[35] Intent to Implement and Ship: Moving DOM attributes to prototype chains - Google グループ ( ( 版)) https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/t0XiZuMey7M

[36] Web IDL (Second Edition) ( ( 版)) http://heycam.github.io/webidl/

[37] Issue 43394 - chromium - DOM attributes should be moved to prototype chains and should expose JavaScript getters/setters - An open-source project to help move the web forward. - Google Project Hosting ( ( 版)) https://code.google.com/p/chromium/issues/detail?id=43394

[38] Web Applications 1.0 r8572 Editorial tweaks ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8571&to=8572

[39] IRC logs: freenode / #whatwg / 20140425 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20140425#l-871

[40] IRC logs: freenode / #whatwg / 20140519 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20140519#l-341

[41] dontcallmedom/webidl-checker ( ( 版)) https://github.com/dontcallmedom/webidl-checker

[42] dontcallmedom/widlproc ( ( 版)) https://github.com/dontcallmedom/widlproc

[43] darobin/webidl2.js ( ( 版)) https://github.com/darobin/webidl2.js

[44] Re: WebIDL Spec Status ( (Marcos 著, 版)) http://lists.w3.org/Archives/Public/public-webapps/2014AprJun/0990.html

[45] Re: Status of Web IDL ( (Boris Zbarsky 著, 版)) http://lists.w3.org/Archives/Public/public-script-coord/2014AprJun/0162.html

[46] Re: WebIDL Spec Status ( (Boris Zbarsky 著, 版)) http://lists.w3.org/Archives/Public/public-webapps/2014AprJun/1008.html

[47] Re: WebIDL Spec Status ( (Cameron McCormack 著, 版)) http://lists.w3.org/Archives/Public/public-webapps/2014AprJun/1020.html

[48] mozilla-central mozilla/dom/webidl/ ( ( 版)) http://mxr.mozilla.org/mozilla-central/source/dom/webidl/

[49] Help with WebIDL v1? ( (Travis Leithead 著, 版)) http://lists.w3.org/Archives/Public/public-webapps/2014OctDec/0515.html

[50] WebIDL v1 vs. v2 ( (Domenic Denicola 著, 版)) http://lists.w3.org/Archives/Public/www-tag/2014Dec/0005.html

[51] WebIDL bindings - Mozilla | MDN ( ( 版)) https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings#Implementing_WebIDL_using_Javascript

[52] Blink-in-JavaScript - The Chromium Projects ( ( 版)) https://www.chromium.org/blink/blink-in-js

[53] IRC logs: freenode / #whatwg / 20150113 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20150113

[54] Bug 28093 – Consider using namespaceURI in the IDL ( 版) https://www.w3.org/Bugs/Public/show_bug.cgi?id=28093#c3

[55] WebIDL Plans (Yves Lafon 著, 版) https://lists.w3.org/Archives/Public/public-webapps/2015AprJun/0078.html

[56] PSA: publish WD of "WebIDL Level 1" (Arthur Barstow 著, 版) https://lists.w3.org/Archives/Public/public-webapps/2015JulSep/0225.html

[57] WebIDL Level 1 ( ( 版)) http://www.w3.org/TR/2015/WD-WebIDL-1-20150804/

[58] Remove v1 spec. · heycam/webidl@877b066 ( 版) https://github.com/heycam/webidl/commit/877b066aa14560b6e271910a6e6f8daf565bb41b

[71] CfC: publish Candidate Recommendation of Web IDL Level 1; deadline December 9 (Arthur Barstow 著, 版) https://lists.w3.org/Archives/Public/public-script-coord/2015OctDec/0058.html

[72] Update ECMAScript and IDL integration by domenic · Pull Request #373 · whatwg/html ( 版) https://github.com/whatwg/html/pull/373

[73] WebIDL Level 1 ( 版) https://www.w3.org/TR/2016/CR-WebIDL-1-20160308/

[74] Editorial: link DOMStringMap algorithms · whatwg/html@fafd2e1 ( 版) https://github.com/whatwg/html/commit/fafd2e185ce5884b7cd90c6bf8c894ead0bdda90

Also remove a note about it only describing a mapping to JavaScript,

since that is true for all of IDL.

[75] Editorial: Use consistent spacing for "Web IDL" ( (Resseguie著, )) https://github.com/whatwg/html/commit/405a49c58954184b5a3f25ecf78bf84017a1bce3

[76] Quick update on WebIDL "Level 1" (Travis Leithead著, ) https://lists.w3.org/Archives/Public/public-webapps/2016JulSep/0004.html

[77] WebIDL crawler (Dominique Hazael-Massieux著, ) https://lists.w3.org/Archives/Public/public-script-coord/2016JulSep/0000.html

[78] WebIDLPedia () https://dontcallmedom.github.io/webidlpedia/

[79] CFC to publish WebIDL-1 as a Proposed Recommendation (Léonie Watson著, ) https://lists.w3.org/Archives/Public/public-webapps/2016JulSep/0058.html

[81] Convert specification to Bikeshed (tobie著, ) https://github.com/heycam/webidl/commit/e4a54951979a72004cae9f9949e856108a92224b

[82] WebIDL Level 1 () https://www.w3.org/TR/2016/PR-WebIDL-1-20160915/

[83] Welcome new WebPlat editors (Léonie Watson著, ) https://lists.w3.org/Archives/Public/public-webapps/2016OctDec/0013.html

Tobie Langel (IE) as editor for WebIDL, Sangwhan Moon (IE) as editor for

Web Workers and HTML, Yongsheng Zhu (Alibaba) as editor for DOM, and

Brandon Jones (Google) as editor for Gamepad API.

[84] Add myself to the editors. (tobie著, ) https://github.com/heycam/webidl/commit/1c308128e3416c724e2614f84db7c07eb4882660

[85] WebIDL Level 1 () https://www.w3.org/TR/2016/REC-WebIDL-1-20161215/

[86] WebIDL-1 is a W3C Recommendation (Léonie Watson著, ) https://lists.w3.org/Archives/Public/public-webapps/2016OctDec/0032.html

[87] GC / DOM / Web API Integration :unicorn: - WebAssembly () http://webassembly.org/docs/gc/

[88] Add support for readonly attributes on namespaces (#264) (domenic著, ) https://github.com/heycam/webidl/commit/dca168847268a1e08fcb91f4ccadd2e3b748a39e

[89] Reference to WebIDL · Issue #408 · w3c/presentation-api () https://github.com/w3c/presentation-api/issues/408

[90] WebAPI/WebIDL Review Checklist - MozillaWiki () https://wiki.mozilla.org/WebAPI/WebIDL_Review_Checklist

[91] WebIDL bindings - Mozilla | MDN () https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings

[92] Exact normative requirements for interface definitions are unclear · Issue #732 · whatwg/streams () https://github.com/whatwg/streams/issues/732

[93] 10734 – Create LR Grammar () https://www.w3.org/Bugs/Public/show_bug.cgi?id=10734

[94] Notice of CFC: Publish WebIDL Level 2 as FPWD (Léonie Watson著, ) https://lists.w3.org/Archives/Public/public-webapps/2017JulSep/0022.html

[95] Client-side API Design Principles () https://w3ctag.github.io/design-principles/

[96] w3ctag/design-principles: A small-but-growing set of design principles collected by the TAG while reviewing specifications () https://github.com/w3ctag/design-principles

[97] CFC: Publish WebIDL Level 2 as a FPWD · Issue #88 · w3c/WebPlatformWG () https://github.com/w3c/WebPlatformWG/issues/88

[98] Add IDL section and define IDL for all the members (kenchris著, ) https://github.com/w3c/manifest/commit/c434135ba721947e4782b86286675a3e88b11033

[99] Revert "Add IDL section and define IDL for all the members" (kenchris著, ) https://github.com/w3c/manifest/commit/e0e053f2f7b7e0a977b27c6870b102a27585ea2e

[100] Check grammar is LL(1) as part of Travis builds (tobie著, ) https://github.com/heycam/webidl/commit/04e2bdd6d9f58add0fdeb89eff9d38b737d475dc

[101] Check grammar is LL(1) as part of Travis builds by tobie · Pull Request #458 · heycam/webidl () https://github.com/heycam/webidl/pull/458

[102] Add IDL processing (kenchris著, ) https://github.com/w3c/manifest/commit/87f573da521116af22c4f5d2ac07b9b2e6fa50d0

[103] Add IDL section and define IDL for all the members by kenchris · Pull Request #613 · w3c/manifest () https://github.com/w3c/manifest/pull/613

[104] More review fixes (kenchris著, ) https://github.com/w3c/manifest/commit/764581b16f2ce176e25db41fd53845e1f140fe94

[105] Review comments (kenchris著, ) https://github.com/w3c/manifest/commit/8c948fecaff100cbc72cc414646ed698b22d1d17

[106] Add IDL section and define IDL for all the members (kenchris著, ) https://github.com/w3c/manifest/commit/27e1aad3d1893b957781ffc024b230709513a460

[107] Fix SOTD (#456) (tobie著, ) https://github.com/heycam/webidl/commit/95aeaf779c23e09850684fdc02210afc50e8cad3

[108] Status of this document section mistakenly links to public-webapps@ · Issue #455 · heycam/webidl () https://github.com/heycam/webidl/issues/455

[109] Fix SOTD by tobie · Pull Request #456 · heycam/webidl () https://github.com/heycam/webidl/pull/456

[110] Consider syntactic changes to WebIDL to make it more "JavaScript-y" · Issue #485 · heycam/webidl () https://github.com/heycam/webidl/issues/485

[111] Considering factoring WebIDL to allow use from the ECMAScript specification · Issue #486 · heycam/webidl () https://github.com/heycam/webidl/issues/486

[112] Escape 'includes' in IDL, now that it's a reserved word (inexorabletash著, ) https://github.com/w3c/IndexedDB/commit/98b28b9890eb92b36eaadbedb31cea2d3bcd64aa

[113] Add informative section on legacy constructs (#506) (tobie著, ) https://github.com/heycam/webidl/commit/1244c861344930dd3c6353181c9d8856efa876c2

[114] Add informative section on legacy constructs by tobie · Pull Request #506 · heycam/webidl () https://github.com/heycam/webidl/pull/506

[115] Editorial: mark former editors as such (#685) (tobie著, ) https://github.com/heycam/webidl/commit/cc2fa40e38ac9e38544426ae6a487cc2e37d838f

[116] Editorial: marking former editors as such by tobie · Pull Request #685 · heycam/webidl () https://github.com/heycam/webidl/pull/685

[117] Update WebIDL editors list by tobie · Pull Request #517 · tobie/specref () https://github.com/tobie/specref/pull/517