hints-ext 更新しました

更新内容は

  • inline style 禁止 対策
  • 面積のないElementが 欠ける件、実質問題なさげなレベルまで改善
  • ラベル再配置(ラベルが重ならないようにする機能)
    • 高速化(10倍くらいになった)
    • ラベルの移動処理変更
  • 細々と微調整

です。

vimperator/hints-ext.js at master · caisui/vimperator · GitHub


inline style 禁止

基本 CSP による inline style禁止 対策です。
また、コンテンツのcssの影響を受けなくなったので、!importが多様されているページでも崩れてしまうことがなくなりました。


CSPによって、ヒントの配置に失敗の図


改善後


ちなみに、test で使った簡便なCSPを吐く http server はこんなです。

https://gist.github.com/caisui/7959322

面積のないElementが 欠ける

hints-ext について - caisuiの日記の件です。
力技で組込んでみましたが、10ms程度しか差異がでなかったので採用しました。



対策前 [パソコン], [PC周辺機器]等の部位が欠けています。


対策後


「解決」でなく「実質問題無い」としているのは、子孫ノードすら面積が無い(あるいは子孫が存在しない)ものは検知できてないからです。



本家では、'HR'と'HT' の 部位も表示されています。

しかし、見えていない Element なので、実質問題無いかなとしています。


従来の方式を望む場合は、

hints.fixRect0 = false;

とすれば、戻ります。


ラベル再配置

アルゴリズム変更しました。




と配置するようになりました。