/
270.txt
125 lines (111 loc) · 7.48 KB
/
270.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
* 仕様書
[REFS[
- [3] '''[CITE@en-US[DOM Standard]] ([TIME[2014-09-14 14:03:21 +09:00]] 版) <https://dom.spec.whatwg.org/#dom-document-origin>'''
- [253] [CITE@en-US[DOM Standard]] ([TIME[2012-12-20 16:17:48 +09:00]] 版) <http://dom.spec.whatwg.org/#concept-document>
- [135] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#origin>
- [127] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#windows>
]REFS]
* 文書の起源
[177] [CODE(DOMi)@en[[[Document]]]] [[オブジェクト]]は[[起源]]と[[実効スクリプト起源]]を持ちます
[SRC[>>253]]。これらは次の通り定まります。
[FIG(list)[
- [165] [[閲覧文脈]]中にある場合であって [CODE(DOMi)@en[[[Document]]]]
作成時に[[閲覧文脈]]の[[砂箱化起源閲覧文脈フラグ]]が設定された場合 [SRC[>>135]]
[FIG(members list)[
:[[起源]]: [CODE(DOMi)@en[[[Document]]]] が作られた時に割り当てられた大域的に固有な識別子
:[[実効スクリプト起源]]: 初期状態では[[起源]]の複製
]FIG]
- [168] [[ネットワーク]]から供給されたもので、 [[URL scheme]] が[[server-based naming authority]]を持つものの場合
[SRC[>>135]]
[FIG(members list)[
:[[起源]]: [[[CODE(DOMi)@en[Document]]の番地]]の[[起源][URLの起源]]の複製
:[[実効スクリプト起源]]: 初期状態では[[起源]]の複製
]FIG]
- [171] [CODE(URI)@en[[[data:]]]] [[URL]] から生成された場合 [SRC[>>135]]
-- [169] [[HTTP]] [[リダイレクト]] (や[[他のプロトコルの等価なもの]]) で返された場合
[DEL[
[FIG(members list)[
:[[起源]]: [CODE(URI)@en[[[data:]]]] [[URL]] に[[リダイレクト]]した [[URL]] の[[起源]]の[[別名]]
:[[実効スクリプト起源]]: 初期状態では[[起源]]の[[別名]]
]FIG]
]DEL]
-- [170] 他の [CODE(DOMi)@en[[[Document]]]] や[[スクリプト]]にあった場合
[FIG(members list)[
:[[起源]]: [[navigation]] を始めた [CODE(DOMi)@en[[[Document]]]] や[[スクリプト]]の[[起源]]の[[別名]]
:[[実効スクリプト起源]]: 初期状態では [[navigation]] を始めた [CODE(DOMi)@en[[[Document]]]]
や[[スクリプト]]の[[起源]]の[[別名]]
]FIG]
- [172] [[[CODE(DOMi)@en[Document]]の番地]]が [CODE(URI)@en[[[about:blank]]]] の場合
-- [128] [[閲覧文脈]]が作られた時に割り当てられた[[起源]]
--- [129] 新しい[[閲覧文脈]]が[[作成子閲覧文脈]]なら、 [SRC[>>127]]
[FIG(members list)[
:[[起源]]: [[作成子[CODE(DOMi)@en[Document]]]]の[[起源]]の[[別名]]
:[[実効スクリプト起源]]: [[作成子[CODE(DOMi)@en[Document]]]]の[[実効スクリプト起源]]の[[別名]]
]FIG]
--- [130] そうでないなら、 [SRC[>>127]]
[FIG(members list)[
:[[起源]]: 新しい[[閲覧文脈]]が作られた時に割り当てらられた大域的に固有な識別子
:[[実効スクリプト起源]]: [[起源]]の[[別名]]
]FIG]
- [167] [CODE(URI)@en[[[javascript:]]]] [[URL]] から生成された場合 [SRC[>>135]]
[FIG(members list)[
:[[起源]]: [CODE(URI)@en[[[javascript:]]]] [[URL]] への [[navigation]] が行われた[[閲覧文脈]]の[[活性文書]]の[[起源]]の[[別名]]
:[[実効スクリプト起源]]: 初期状態では[[起源]]の決定に使ったのと同じ[[文書]]の[[実効スクリプト起源]]の[[別名]]
]FIG]
- [173] [CODE(HTMLe)@en[iframe]] [[[CODE(HTMLa)@en[srcdoc]]文書]]の場合 [SRC[>>135]]
[FIG(members list)[
:[[起源]]: [[閲覧文脈]]の[[閲覧文脈包含子]]の [CODE(DOMi)@en[[[Document]]]] の[[起源]]の[[別名]]
:[[実効スクリプト起源]]: [[閲覧文脈]]の[[閲覧文脈包含子]]の [CODE(DOMi)@en[[[Document]]]] の[[実効スクリプト起源]]の[[別名]]
]FIG]
- [237] [CODE(DOMi)@en[[[XMLHttpRequest]]]] で作られた場合
[FIG(members list)[
:[[起源]]: [[[CODE(DOMi)@en[XMLHttpRequest]]起源]] ([[起源]>>234])
:[[実効スクリプト起源]]: 初期状態では[[起源]]の[[別名]] [SRC[>>239]]
]FIG]
- [255] [CODE(JS)@en[[[new]] [[Document]]()]] [SRC[>>253]]
[FIG(members list)[
:[[起源]]: [[大域オブジェクト]]に関連付けられた[[文書]]の[[起源]]の[[別名]]
:[[実効スクリプト起源]]: [[大域オブジェクト]]に関連付けられた[[文書]]の[[実効スクリプト起源]]の[[別名]]
]FIG]
- [256] [CODE(DOMm)@en[[[createDocument]]]], [CODE(DOMm)@en[[[createHTMLDocument]]]] [SRC[>>253]]
[FIG(members list)[
:[[起源]]: [[文脈オブジェクト]]に関連付けられた[[文書]]の[[起源]]の[[別名]]
:[[実効スクリプト起源]]: [[文脈オブジェクト]]に関連付けられた[[文書]]の[[実効スクリプト起源]]の[[別名]]
]FIG]
- [254] 特段の規定がない場合、 [SRC['''>>253''', >>135]]
[FIG(members list)[
:[238] [[起源]]: [CODE(DOMi)@en[[[Document]]]] が作られた時に割り当てられた大域的に固有な識別子
:[239] [[実効スクリプト起源]]: 初期状態では[[起源]]の[[別名]]
]FIG]
-- [175] 例えば [CODE(URI)@en[[[data:]]]] [[URL]] を[[利用者]]が指定した場合
-- [176] [DEL[例えば [CODE(DOMm)@en[[[createDocument]]]] で作られた場合]]
--- [257] これは [[HTML Living Standard]] で例示されていましたが、後に [[DOM Living Standard]]
で規定が追加されています (>>256)。
]FIG]
[228] [[実効スクリプト起源]]は [CODE(DOMi)@en[[[Document]]]] の作成の時点ではここに示した通りですが、
[CODE(JS)@en[[[document.domain]]]] [[属性]]によって変更することもできます。
[6] [[文書の起源]]は変化しません。
[4] [[文書のドメイン]]は、[[文書の起源]]のうち、[[ホスト]]の部分を指します。
[[文書の起源]]が[[三項組]]でないなら、ありません。
;; [[文書のドメイン]]参照。
* 歴史
[269] [CITE@en[Web Applications 1.0 r7881 Security: data: URLs shouldn't get the origin of a redirector, since that redirector might be tricked into redirecting a data: URLs by a hostile origin, thus letting that hostile origin expose a same-origin data: URL.]] ([TIME[2013-06-01 05:13:00 +09:00]] 版) <http://html5.org/tools/web-apps-tracker?from=7880&to=7881>
[174] [[文書の起源]]の「その他」ケースは [[HTML Living Standard]] で最初に規定され、次に
[[DOM Living Standard]]
でも規定され、
[CITE@en[Web Applications 1.0 r7732 Defer to DOM.]] ([TIME[2013-03-07 04:51:00 +09:00]] 版) <http://html5.org/tools/web-apps-tracker?from=7731&to=7732>
で [[DOM]] の規定を参照するよう変更されました。
[REFS[
- [1] [CITE[Add document.origin. https://www.w3.org/Bugs/Public/show_bug.cgi?id=2340... · 0999d4d · whatwg/dom]]
( ([TIME[2013-11-13 11:34:52 +09:00]] 版))
<https://github.com/whatwg/dom/commit/0999d4d9acbe9cb178021b9f6ceba8cc72cc00fd>
- [2] [CITE[Actually serialize the origin, oops! · b5dcd15 · whatwg/dom]]
( ([TIME[2013-11-13 11:35:32 +09:00]] 版))
<https://github.com/whatwg/dom/commit/b5dcd1560f4c19a70f2dfc7eb1e00289809554e2>
]REFS]
[5] [CITE@en[931884 – Implement document.origin]]
([TIME[2015-06-13 12:32:38 +09:00]] 版)
<https://bugzilla.mozilla.org/show_bug.cgi?id=931884>
[7] [CITE@en[Remove the origin aliasing concept · whatwg/html@438155d]]
([TIME[2016-03-23 22:28:21 +09:00]] 版)
<https://github.com/whatwg/html/commit/438155d2a2255aa5ea84ae390744d8a8662ebec2>