* 仕様書

[REFS[
- [2] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-03-14 22:44:13 +09:00]] 版) <https://html.spec.whatwg.org/#dom-location-protocol>
]REFS]

* 性質

[17] この[[属性]]は、 [CODE(xattr IDL)@en[Unforgeable]] です [SRC[>>2]]。

* 取得器

[3] [CODE(JS)@en[location.protocol]] の[[取得器]]は、次のようにしなければ[MUST[なりません]]
[SRC[>>2]]。
[FIG(steps)[
= [6] [[文脈オブジェクト]]の[F[[[関係する[CODE(DOMi)@en[Document]]]]]]の[F[起源][文書の起源]]と[[入口設定群オブジェクト]]の[F[起源]]が[[同じ起源ドメイン]]でなければ、
== [7] [CODE(DOMe)@en[SecurityError]] [[例外]]を[[投げ]]、ここで停止します。
= [4] [[文脈オブジェクト]]の[F[URL][Location (DOM)]]の[F[URL scheme]]
に [CODE[:]] を連結したものを返します。
]FIG]

* 設定器

[5] [CODE(JS)@en[location.protocol]] の[[設定器]]は、次のようにしなければ[MUST[なりません]]
[SRC[>>2]]。
[FIG(steps)[
= [18] [VAR[入力]]を、与えられた値を [CODE(IDL)@en[USVString]] として解釈した結果に設定します。
= [8] [[文脈オブジェクト]]の[F[[[関係する[CODE(DOMi)@en[Document]]]]]]の[F[起源][文書の起源]]と[[入口設定群オブジェクト]]の[F[起源]]が[[同じ起源ドメイン]]でなければ、
== [9] [CODE(DOMe)@en[SecurityError]] [[例外]]を[[投げ]]、ここで停止します。
= [10] [VAR[複製]]を、[[文脈オブジェクト]]の[F[URL][Location (DOM)]]の[F[URL scheme]]
に複製に設定します。
= [11] [VAR[結果]]を、[VAR[入力]]に[[基本URL構文解析]]を適用した結果に [CODE[:]]
を連結したものに設定します。 [VAR[URL]] は[VAR[複製]]、
ただし[VAR[状態上書き]]は [[scheme start state]] とします。
= [12] [VAR[結果]]が[[失敗]]なら、
== [13] [CODE(DOMe)@en[SyntaxError]] [[例外]]を[[投げ]]、ここで停止します。
= [14] [VAR[複製]]の [F[URL scheme]] が [[HTTP(S) scheme]] でなければ、ここで停止します。
= [15] [[文脈オブジェクト]]と [VAR[URL]] について
[[[CODE(DOMi)@en[Location]]-object-setter navigate]] を実行します。
]FIG]

;; [16] 従って [CODE(URI)@en[http:]] と [CODE(URI)@en[https:]]
以外に設定することはできません。

* 歴史

[1] [CITE@en[Define security around Window, WindowProxy, and Location properly · whatwg/html@acae3df]]
([TIME[2016-03-13 23:38:50 +09:00]] 版)
<https://github.com/whatwg/html/commit/acae3df652b382e9f4f1d1b4dc7e08e2b00df821>

[19] [CITE@en[Merge effective script origin into origin · whatwg/html@8a843f2]]
([TIME[2016-03-31 18:04:26 +09:00]] 版)
<https://github.com/whatwg/html/commit/8a843f2169a6864a3024c4329528dccb2051d275>

[20] [CITE@en[Use URL's HTTP(S) scheme concept and define rel=icon better]]
( ([[annevk]]著, [TIME[2016-05-26 21:59:00 +09:00]]))
<https://github.com/whatwg/html/commit/a932f7dfd5e50101db47a373cee27b04ed108934>

[21] [CITE@en[Return failure in state override scheme parsing]]
([[annevk]]著, [TIME[2017-01-03 23:33:47 +09:00]])
<https://github.com/whatwg/url/commit/4617e33b27d386bbf1db8c04316961d46aaa1397>

[22] [CITE@en[Use "SyntaxError" for location.protocol's setter]]
([[annevk]]著, [TIME[2017-01-05 23:40:38 +09:00]])
<https://github.com/whatwg/html/commit/560f5d1cc4742e98bf08e3b56930820c620ff062>

[23] [CITE@en[Editorial: clarify colon parsing for protocol setters]]
([[domenic]]著, [TIME[2017-02-25 09:13:29 +09:00]])
<https://github.com/whatwg/html/commit/e956bb4179220442b6c6639baae57d449bb8b38b>