/
317.txt
77 lines (46 loc) · 3.26 KB
/
317.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
[42] [[Webブラウザー]]は、[DFN[[F[既読URLリスト]]]]を持ちます。その挙動は明文化されておらず、
完全に実装依存ですが、大まかな動作は共通しています。
* 既読化
[43] [[navigate]] がある程度の段階まで進行すると、 [[URL]] を[F[既読URLリスト]]に追加します
([DFN[既読化]])。
;; [[navigate]] も参照。
[44] [[HTTPリダイレクト]]や [[HSTS]] などで [[URL]] が書き換わる場合には、
両方が追加されるのが一般的なのではないかと思われます。
[45] かつての [[IE]] は [[URL]] の[F[素片][素片識別子]]を無視していました。
;; [[素片識別子]]も参照。
[48] [CODE(DOMm)@en[pushState]]/[CODE(DOMm)@en[replaceState]] が影響するのかは不明です。
[11] [[private browsing]] での動作は実装依存です。
[[既読化]]が何も行わず、 [CODE[:visited]] に何も一致しない実装もあるようです。
-*-*-
[6] [[ブラウザー拡張]]の [CODE[history]] API から追加することもできます。
[3] [[既読化]]された際、 [CODE[history]] API の [CODE[onVisited]] が呼び出されます。
* 参照
[46] [CODE(CSS)@en[:visited]]/[CODE(CSS)@en[:link]] の[[レンダリング]]には、 [F[既読URLリスト]]に[[リンク先]]の
[[URL]] が含まれているか否かを利用します。
;; [CODE(CSS)@en[:visited]] 参照。
* 削除
[47] [F[既読URLリスト]]の項目は、古くなったら自動的に削除されます。
[10] 昔の [[Webブラウザー]]には、何日経ったら削除するかの[[設定]]項目が用意されていました。
-*-*-
[4] [[ブラウザー拡張]]の [CODE[history]] API から削除もできます。
[5] 削除時には [CODE[history]] API の [CODE[onVisitRemoved]] が呼び出されます。
* ブラウザー拡張の [CODE[history]] API
[2] [[Chrome拡張]]の API [DFN[[CODE[chrome.history]]]] は、訪問履歴にアクセスできるものです。
[[URL]] のみならず、訪問方法・日時などの情報も保持しているようです。
[REFS[
- [1] [CITE[chrome.history - Google Chrome]] ([TIME[2016-06-18 12:51:04 +09:00]]) <https://developer.chrome.com/extensions/history>
]REFS]
* プライバシー
[7] 閲覧履歴は[[プライバシー]]に関わる情報であり、 [[fingerprinting vector]]
でもあります。
[8] [CODE(CSS)@en[:visited]]/[CODE(CSS)@en[:link]] は[[レンダリング]]にこそ反映されますが、
[[著者]]の[[スクリプト]]からはアクセスできません。
;; [CODE(CSS)@en[:visited]] 参照。
[12] [[同じ起源]]の[[Webページ]]を閲覧したことがあるかどうかは、
[CODE(DOMa)@en[localStorage]] に保存するなど、他のページと協調することで、
知れるようにすることができます。[[同じ起源]]でなくとも、
[CODE(DOMm)@en[postMessage]] などで情報交換の方法を予め用意しておけば、
知ることはできます。
しかし、完全な第三者の [[Webページ]]を閲覧したことがあるかどうかは、結局できません。
* 関連
[9] [[閲覧文脈]]の[[セッション履歴]]と直接の連動関係にはありません。