[5] navigator
オブジェクトの
plugins
IDL属性は、
文書の PluginArray
オブジェクトを返します。
PluginArray
オブジェクト#✎[11] PluginArray
オブジェクトは、
利用者エージェントが対応するプラグインの一部または全部を表します。
これは fingerprinting vector ですから、どのプラグインも含めないのが良いと考えられます。
一方で、プラグインが存在するか検査するスクリプトも存在しているので、
まったく含めないのは好ましくないかもしれません。 >>4
[9] PluginArray
インターフェイスは、
文書環境に晒され、インターフェイスオブジェクトも存在します >>4。
[13] supported property indices は、0 から隠れプラグイン以外のプラグインの数までです >>4。 (とされていますが、数 - 1 までと思われます。)
[14] length
属性は、隠れプラグイン以外のプラグインの数を返さなければなりません >>4。
[15] item
メソッドは、 indexed getter です。
引数として unsigned long を1つ受け取ります。
これが supported property indices のいずれかならプラグインを、
そうでなければ null を返さなければなりません。 >>4
[16] 返すプラグインは、隠れプラグイン以外のものを name
属性値で整列し、引数で示された索引の位置にあるものとしなければなりません
>>4。
[18] supported property names は、 PluginArray
に含まれるプラグインの name
属性値です >>4。
supported property names により PluginArray
に晒される特性は、列挙不能でなければなりません >>4。
[19] namedItem
メソッドは、 named getter です。
引数として DOMString
を1つ受け取ります。
これが supported property names のいずれかならそれが name
属性と等しいプラグインを、
そうでなければ null を返さなければなりません。 >>4
[21] JavaScript 1.1 で追加されました。
[25] Welcome to Netscape Navigator 3.0, , https://web.archive.org/web/20020630200918/http://wp.netscape.com/eng/mozilla/3.0/relnotes/windows-3.0.html#JavaScript
で、おかしいなと思ってlocal_storage.jsを見たら、navigator.plugins["Shockwave Flash"].description.charAt(16);が原因のようです。
要するに、navigator.plugins["Shockwave Flash"].descriptionで返って来る「Shockwave Flash 10.0 r12」から、charAt(16)で17文字目だけを抜き出してヴァージョンを判定しようとするから、ヴァージョンが1だと誤認されてしまうと言うこと。何でヴァージョンが1桁なのを前提にするかな…
[2] Flash 10でもFlash 9を名乗る - 素人がプログラミングを勉強するブログ ( 版) http://d.hatena.ne.jp/javascripter/20090106/1231245965
[3] Web Applications 1.0 r8036 navigator.plugins and company ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8035&to=8036
Navigator.Plugins() and Navigator.MimeTypes() will only report the presence of Flash Player if the user has indicated that the domain should execute Flash, or if the site is in one of the Top 10 domains using Flash.
[23] Implement stub for NavigatorPlugins · Issue #9991 · servo/servo ( ()) https://github.com/servo/servo/issues/9991
By default, Safari no longer tells websites that common plug-ins are installed. It does this by not including information about Flash, Java, Silverlight, and QuickTime in navigator.plugins and navigator.mimeTypes. This convinces websites with both plug-in and HTML5-based media implementations to use their HTML5 implementation.
document.open
により新しいものに差し替えられますが、 それ以外は常に同じです。