* インターフェイス

[4] 
[FIG(middle list)[
- [CODE(DOMi)@en[DocumentOrShadowRoot]]
- [CODE(DOMi)@en[Slotable]]
- [CODE(DOMi)@en[WindowOrWorkerGlobalScope]]
]FIG]

* 関連

[6] [CODE(IDL xattr)@en[NoInterfaceObject]] も参照。

* 歴史

[5] [[mixin]] に相当するものは以前からありましたが、[[仕様書]]の用語として登場したのは[TIME[2016年3月][2016-03]]でした。

[REFS[
- [1] [CITE@en[Editorial: rename interface to mixin · whatwg/dom@db1362f]]
([TIME[2016-03-16 14:31:50 +09:00]] 版)
<https://github.com/whatwg/dom/commit/db1362f1fc936981108f0014fa5ad8926187961c>
- [2] [CITE@en[Shadow: add DocumentOrShadowRoot mixin · whatwg/dom@4183385]]
([TIME[2016-03-16 14:33:42 +09:00]] 版)
<https://github.com/whatwg/dom/commit/418338575c7f79a18d20ebcc88c19834366379cf>
- [3] [CITE@en[Shadow: define assignedSlot of Element and Text · whatwg/dom@b8e1ccf]]
([TIME[2016-03-24 21:54:57 +09:00]] 版)
<https://github.com/whatwg/dom/commit/b8e1ccf857b6ac483f708336dff4b7ee48393191>
]REFS]

[7] [CITE@en[Provide greater visibility of `implements` relationships? · Issue #249 · whatwg/dom]]
( ([TIME[2016-05-18 19:07:32 +09:00]]))
<https://github.com/whatwg/dom/issues/249>

[8] [CITE@en[23225 – Let's start using class, not interface]]
([TIME[2017-12-08 15:51:28 +09:00]])
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=23225>

[9] [CITE@en[Meta: fix markup now that Bikeshed supports mixins (#499)]]
([[tobie]]著, [TIME[2017-12-15 09:46:27 +09:00]])
<https://github.com/heycam/webidl/commit/f4558f2168eb9cb71127f254e6b60ee801a637ac>

[10] [CITE@en[Meta: fix markup now that Bikeshed supports mixins by tobie · Pull Request #499 · heycam/webidl]]
([TIME[2017-12-16 12:29:03 +09:00]])
<https://github.com/heycam/webidl/pull/499>

[11] [CITE@en[Use interface mixins in IDL]]
([[romandev]]著, [TIME[2017-12-19 19:22:26 +09:00]])
<https://github.com/whatwg/dom/commit/12b069802b771c145fd3b1917c5b82f2a8c1ff9f>

[12] [CITE@en[Use `interface mixins` instead of `'''['''NoInterfaceObject''']'''` by romandev · Pull Request #545 · whatwg/dom]]
([TIME[2017-12-20 23:50:55 +09:00]])
<https://github.com/whatwg/dom/pull/545>

[13] [CITE@en[Use Web IDL's new-ish interface mixins concept]]
([[romandev]]著, [TIME[2017-12-21 05:39:18 +09:00]])
<https://github.com/whatwg/html/commit/c8867a179c21134021dc3435e98c1b9c4542d794>

[14] [CITE@en[Update WebIDL definition(s) to use new mixin syntax · Issue #3194 · whatwg/html]]
([TIME[2017-12-21 12:05:14 +09:00]])
<https://github.com/whatwg/html/issues/3194>

[15] [CITE@en[Use `interface mixins` instead of `'''['''NoInterfaceObject''']'''` by romandev · Pull Request #3207 · whatwg/html]]
([TIME[2017-12-21 12:05:27 +09:00]])
<https://github.com/whatwg/html/pull/3207>

[16] [CITE@en[interface: use Web IDL's new-ish interface mixins concept (#1176)]]
([[romandev]]著, [TIME[2017-12-21 19:09:10 +09:00]])
<https://github.com/w3c/webdriver/commit/d50bdf0c0d6cac5e54cdedc263df3cc2cba173f9>

[17] [CITE@en[Add support for interface mixins]]
([[tobie]]著, [TIME[2017-10-11 16:48:12 +09:00]])
<https://github.com/heycam/webidl/commit/45e8173d40ddff8dcf81697326e094bcf8b92920>

[18] [CITE@en[What is the expected interaction of '''['''SecureContext''']''' with mixins? · Issue #118 · heycam/webidl]]
([TIME[2017-12-23 15:25:34 +09:00]])
<https://github.com/heycam/webidl/issues/118>

[19] [CITE@en[26452 – Introduce an explicit syntax for mixins]]
([TIME[2017-12-23 15:32:32 +09:00]])
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=26452>

[20] [CITE@en[Add mixins by tobie · Pull Request #433 · heycam/webidl]]
([TIME[2017-12-23 15:34:45 +09:00]])
<https://github.com/heycam/webidl/pull/433>

[21] [CITE@en[Should mixins be able to add overloads? · Issue #261 · heycam/webidl]]
([TIME[2017-12-23 15:46:52 +09:00]])
<https://github.com/heycam/webidl/issues/261>

[22] [CITE@en[Designing mixins · Issue #363 · heycam/webidl]]
([TIME[2017-12-23 15:49:59 +09:00]])
<https://github.com/heycam/webidl/issues/363>

[23] [CITE@en[Use interface mixins instead of '''['''NoInterfaceObject''']''']]
([[romandev]]著, [TIME[2017-12-23 21:08:31 +09:00]])
<https://github.com/whatwg/storage/commit/37030a22b727d3039d333334a0124cf21b96314b>

[24] [CITE@en[Update WebIDL definition(s) to use new mixin syntax · Issue #53 · whatwg/storage]]
([TIME[2017-12-24 12:39:54 +09:00]])
<https://github.com/whatwg/storage/issues/53>

[25] [CITE@en[Use `interface mixins` instead of `'''['''NoInterfaceObject''']'''` by romandev · Pull Request #54 · whatwg/storage]]
([TIME[2017-12-24 12:41:00 +09:00]])
<https://github.com/whatwg/storage/pull/54>

[26] [CITE@en[Use interface mixins instead of '''['''NoInterfaceObject''']''']]
([[romandev]]著, [TIME[2017-12-23 21:11:50 +09:00]])
<https://github.com/whatwg/fetch/commit/7e617beaedf731e2904b14919b5c0270a73b75dc>

[27] [CITE@en[Update WebIDL definition(s) to use new mixin syntax · Issue #624 · whatwg/fetch]]
([TIME[2017-12-24 12:44:09 +09:00]])
<https://github.com/whatwg/fetch/issues/624>

[28] [CITE@en[Use `interface mixins` instead of `'''['''NoInterfaceObject''']'''` by romandev · Pull Request #645 · whatwg/fetch]]
([TIME[2017-12-24 12:46:05 +09:00]])
<https://github.com/whatwg/fetch/pull/645>

[29] [CODE[XPathEvaluator]] は単独の[[インターフェイス]]でもあり
([[コンストラクター]]がある)、
[CODE[Document]] にも[[実装]]されている、という特殊ケースでしたが、
この [CODE[interface mixin]] の変更で [[Web IDL]]
で直接これを記述することはできなくなりました。
[CODE[XPathEvaluator]] と [CODE[Document]] でどちらも共通の別の [CODE[interface mixin]]
を [CODE[includes]] するという形に改める必要があります。


[30] [CITE@en[Use Web IDL's new-ish interface mixins concept by romandev · Pull Request #2566 · KhronosGroup/WebGL]]
([TIME[2018-01-07 13:22:41 +09:00]])
<https://github.com/KhronosGroup/WebGL/pull/2566>

[31] [CITE@en[Use Web IDL's new-ish interface mixins concept]]
([[romandev]]著, [TIME[2017-12-21 15:56:40 +09:00]])
<https://github.com/w3c/csswg-drafts/commit/91aca9328fc7e873be721ac06559ff1b5761d6e3>

[32] [CITE@en['''['''cssom''']''' Update WebIDL definition(s) to use new mixin syntax · Issue #1931 · w3c/csswg-drafts]]
([TIME[2018-05-08 22:00:57 +09:00]])
<https://github.com/w3c/csswg-drafts/issues/1931>

[33] [CITE@en['''['''cssom-view''']''' Update WebIDL definition(s) to use new mixin syntax · Issue #1932 · w3c/csswg-drafts]]
([TIME[2018-05-08 22:01:18 +09:00]])
<https://github.com/w3c/csswg-drafts/issues/1932>

[34] [CITE@en[Use Web IDL's new-ish interface mixins concept by romandev · Pull Request #2123 · w3c/csswg-drafts]]
([TIME[2018-05-08 22:01:23 +09:00]])
<https://github.com/w3c/csswg-drafts/pull/2123>

[35] [CITE@en[WindowOrWorkerGlobalScope is a mixin (#58)]]
([[saschanaz]]著, [TIME[2018-05-04 01:12:11 +09:00]])
<https://github.com/w3c/hr-time/commit/6718e7b2ee1f29c62fed274447f5ae72d76d8f00>

[36] [CITE@en[WindowOrWorkerGlobalScope is a mixin by saschanaz · Pull Request #58 · w3c/hr-time]]
([TIME[2018-05-10 12:03:35 +09:00]])
<https://github.com/w3c/hr-time/pull/58>

[37] [CITE@en[Update partial interface (mixin) NavigatorID]]
([[foolip]]著, [TIME[2019-01-21 23:49:37 +09:00]])
<https://github.com/whatwg/html/commit/c8f0426596ad6bba51cf3de411a127a52267ac77>

[38] [CITE@en[Update partial interface (mixin) NavigatorID by foolip · Pull Request #4309 · whatwg/html]]
([TIME[2019-06-18 15:22:56 +09:00]])
<https://github.com/whatwg/html/pull/4309>