[12] [CODE(DOMi)@en[NavigatorContentUtils]] [[インターフェイス]]の
[DFN[[CODE(DOMm)@en[registerContentHandler]]]] [[メソッド]]は、
[[内容取扱器]]を[[利用者]]に提示するものです。

* 仕様書

[REFS[
- [11] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-07-19 18:13:57 +09:00]]) <https://html.spec.whatwg.org/#custom-handlers>
]REFS]

* 処理

[27] [CODE(DOMm)@en[registerContentHandler]] [[メソッド]]は、
次のようにしなければ[MUST[なりません]] [SRC[>>11]]。

[FIG(steps)[
= [30] [VAR[MIME型]]を、必須の第1引数を [CODE(IDL)@en[DOMString]] として解釈した結果に設定します。
= [31] [VAR[URL]] を、必須の第2引数を [CODE(IDL)@en[USVString]] として解釈した結果に設定します。
= [32] [VAR[題名]]を、必須の第3引数を [CODE(IDL)@en[DOMString]] として解釈した結果に設定します。
= [37] [VAR[絶対URL]] を、[VAR[URL]] を[[文脈オブジェクト]]の[F[設定群オブジェクト]]に対して[[構文解析][URLの構文解析]]した結果に設定します。
= [33] 
[FIG(list)[
- [35] [VAR[MIME型]]が [[type blocklist]] のいずれか
([[ASCII大文字・小文字不区別]]) である
- [36] [VAR[URL]] に [CODE[%s][proto-URL]] が含まれない
- [38] [VAR[絶対URL]]が[[失敗]]
]FIG]
... のいずれかを満たすなら、
== [34] [CODE[SyntaxError]] を[[投げ]]、ここで停止します。
= [39] [VAR[絶対URL]]の[F[起源][URLの起源]]と[[文脈オブジェクト]]の[F[設定群オブジェクト]]の[F[起源]]が[[同じ起源]]でなければ、
== [40] [CODE[SecurityError]] を[[投げ]]、ここで停止します。
= [42] [VAR[取扱器]]を、[[取扱器]]に設定します。
[FIG(list members)[
[FIGCAPTION[
[[取扱器]]
]FIGCAPTION]
: [F[種別][取扱器]] : [[内容取扱器]]
: [F[proto-URL]] : [VAR[絶対URL]]
: [F[題名][取扱器]] : [VAR[題名]]
]FIG]
= [43] [VAR[取扱器]]について、[[取扱器の登録]]をします。
]FIG]

* 歴史

[1]
[CITE@ja[Adding feed readers to Firefox - MDC]] ([CODE[2006-10-23 11:17:20 +09:00]] 版) <http://developer.mozilla.org/ja/docs/Adding_feed_readers_to_Firefox>

[2] [CITE@en[Web Applications 1.0 r6670     Allow sites to register RSS and Atom handlers, and handlers for specific XML types.]]
( ([TIME[2011-10-13 04:08:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6669&to=6670>

[3] [CITE@en[Web Applications 1.0 r6523     registerProtocolHandler() and registerContentHandler() security updates]]
( ([TIME[2011-08-24 08:27:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6522&to=6523>

[4] [CITE@en[Fix #124: make more types follow text/plain navigate logic · whatwg/html@f94f3c4]] ([TIME[2015-10-01 01:02:41 +09:00]] 版) <https://github.com/whatwg/html/commit/f94f3c4595fbc5fecb747ef52f46cdc5f2b3feec>

[5] [CITE@en[Fixes #265: Change whitelist/blacklist to safelist/blocklist · whatwg/html@cb3316d]]
([TIME[2015-10-27 12:37:25 +09:00]] 版)
<https://github.com/whatwg/html/commit/cb3316db45e369ba31d97c5ee2dcd9c353a3cb5d>

[6] [CITE@en[26876 – Title argument for both registerProtoclHandler() and registerContentHandler() should be removed as i ''''''[''''''...'''''']'''''']]
([TIME[2016-02-06 12:38:57 +09:00]] 版)
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=26876>

[7] [CITE@en[Fate of registerProtocolHandler() / registerContentHandler() and friends? · Issue #630 · whatwg/html]]
([TIME[2016-02-06 12:39:04 +09:00]] 版)
<https://github.com/whatwg/html/issues/630>

[8] [CITE@en[URLs are parsed and produce records · whatwg/html@30bc255]]
([TIME[2016-02-14 23:04:06 +09:00]] 版)
<https://github.com/whatwg/html/commit/30bc2557105ad62881ec9670f253febbc9761b44>

[9] [CITE@en[Use USVString for all URLs]]
( ([[domenic]]著, [TIME[2016-05-20 22:02:29 +09:00]]))
<https://github.com/whatwg/html/commit/018b983b77b2cd908f6d00100e7e0abe893dd2c3>

[10] [CITE@en[Use relevant settings object in protocol handlers]]
([[domenic]]著, [TIME[2016-07-13 07:13:28 +09:00]])
<https://github.com/whatwg/html/commit/413c1ccc43c9b16ff5c73585092f8721dea305c7>

[13] [CITE@en[Remove registerContentHandler() and several friends]]
([[annevk]]著, [TIME[2017-09-14 20:16:09 +09:00]])
<https://github.com/whatwg/html/commit/b143dbc2d16f3473fcadee377d838070718549d3>

[14] [CITE@en[Fate of registerProtocolHandler() / registerContentHandler() and friends? · Issue #630 · whatwg/html]]
([TIME[2017-09-15 23:14:53 +09:00]])
<https://github.com/whatwg/html/issues/630>

[15] [CITE@en[Remove registerContentHandler() and several friends by annevk · Pull Request #3027 · whatwg/html]]
([TIME[2017-09-15 23:15:24 +09:00]])
<https://github.com/whatwg/html/pull/3027>