Stylish の拡張機能が動作しなくなった
-
-
環境
- OS: Linux Mint 19.2 (64 bit)
- Vivaldi: 2.9.1705.31 (Stable channel) (64-bit)
-
再現手順
-
Vivaldi に拡張機能 Stylish をインストールする。
-
右上のツールバーのアイコン (S のアイコン) を右クリックする。
-
オプションを選択する。
-
新しく開かれたページの左メニューにある「新しいスタイルの作成」ボタンをクリックする。
-
スタイル名を入れる (任意)。
-
右のエディタに以下のコードを入れる。
@font-face { font-family: "MS PGothic"; src: local('Noto Sans CJK JP'); }
- 事前に「Noto Sans CJK JP」のフォントがインストールされているか、上記コードの「Noto Sans CJK JP」を任意のフォント名に変更しておく必要があります。
-
左メニューの「保存」ボタンをクリックする。
-
MS フォントが使われている任意のサイトにアクセスする (例: https://www.yahoo.co.jp)。
-
-
本来あるべき挙動
- 拡張機能がうまく機能していれば、サイト全体のフォントが、Noto Sans CJK JP のフォント (あるいは、指定したフォント) に置き換わります (ジャギー (フォントのギザギザ) がない状態になる)。
-
実際の挙動
- MS P Gothic のままで置き換わりません。
-
補足情報
- バージョン 2.8 までは普通に動いていました。
- 2.9 アップグレード後、Stylish の編集画面で、「@font-face declaration doesn't follow the fontsprint bulletproof syntax.」の警告が出るようになりました。
- Chromium (Ver. 77.0.3865.90) では正常に動いています。
-
-
https://iwb.jp/chrome-firefox-stylish-uninstall-stylus-install/
上記の件はご存じでしょうか。
Stylishではなく、Stylusを使うようにおすすめします。 -
質問の本質とは異なりますが、存じております。
そして、stylus でも同様の症状が出ています。 -
@mumeiyamibito ご報告ありがとうございます!Stylishでは当該のエラーがVivaldiで発生することは再現しました(Chrome、あるいはVivaldiでもStylusではエラー発生せず)。ですが、Vivaldi 2.8, 2.9やChrome 78 (77では未検証)上で、共有いただいたコードをStylishやStylusで試しましたが、Noto Sans CJK JPでYahoo! Japanが表示はされませんでした。(フォント自体はOSにインストールされています。)下記のような簡易HTMLを表示してフォントを比べてみましたが、MS PゴシックはMS Pゴシックのままでした。それらの拡張機能を正しく動作させる手順がありましたら、ご教示いただけると幸いです
<!DOCTYPE html> <html> <body> <table> <tr><td>MS Pゴシック</td><td style="font-family: 'MS PGothic'">謹賀新年 / おめでとう / Happy New Year.</td></tr> <tr><td>Noto Sans CJK JP</td><td style="font-family: 'Noto Sans CJK JP'">謹賀新年 / おめでとう / Happy New Year.</td></tr> </table> </body> </html>
-
@Takaaki 該当コードの HTML の表示についてですが、ローカルファイルは特殊な事情があるようで、Stylus の拡張機能ページにて、「ファイルのURLへのアクセスを許可」を ON にする必要があるようです。
Stylish と Stylus の違いについては、最初の投稿以降に当方も気づきましたので、以後は Stylus での挙動で報告していきたいと思います。
挙動は、ページ表示後、上のツールバーで「すべてのスタイルをオフにする」のチェックボックスを ON/OFF することで、確認できます。
Stylus でも Chromium 77.0.3865.90 と Vivaldi で挙動が違うことを確認しました。Chromium の場合、チェックボックスの切り替えで、フォントが変わりましたが、Vivaldi では一切変わりませんでした。 -
@mumeiyamibito ありがとうございます。おっしゃる通り、ローカルファイルへのアクセスを許可せねばなりませんでした...
許可した上で、vivaldi://flagsの
Match @font-face { src: local(<name>) } names by PostScript and full font name.
をDisabledにすると、当方ではStylusの「すべてのスタイルをオフにする」チェックボックスのON/OFFでフォントが切り替わるようになりました。
Vivaldi 2.9はChromium 78ベースですので、問題の所在を調べるべくChromium 78にて検証しようと思います。取り急ぎ。
-
@mumeiyamibito Chromium 77から78間にあった下記のコミットにより、当該のフラグのデフォルト値が必ずEnabledになるような変更があったようです。このため、Chrome 78でも本件は再現すると見られますが、ご確認いただくこと可能でしょうか?
https://chromium.googlesource.com/chromium/src/+/2636d85503e057621cfbfce7fb666caec1560312^!/#F0
こちらの変更に伴い、"Noto Sans CJK JP"から"NotoSansCJKjp-Regular"のように正確なフルネームで指定すると、フラグの変更なく指定フォントをウェブサイトに適用できるようになると見られます。よろしければ、その点もご確認ください
-
@Takaaki 検証ありがとうございます。
Chromium 78.0.3904.70 にアップグレードした所、拡張機能が使えなくなることを確認しました。こちらの変更に伴い、"Noto Sans CJK JP"から"NotoSansCJKjp-Regular"のように正確なフルネームで指定すると、フラグの変更なく指定フォントをウェブサイトに適用できるようになると見られます。よろしければ、その点もご確認ください
@font-face { font-family: "MS PGothic"; src: local('NotoSansCJKJP-Regular'); }
のようにコードを変えたのですが、上記については、Vivaldi と Chromium の両方で改善しませんでした。ブラウザで認識しているローカルのフォント一覧、あるいはフォント名を確認する方法はありますでしょうか?
-
@mumeiyamibito
これが正確な仕様か否かは私も残念ながら把握していないのですが、Notoのダウンロードサイトから落としてきたファイル(NotoSansCJKjp-Regular.otf)に名称に合わせて下記のように設定したところ、Stylusによるフォント変更ができました。(Linux Mint 19.1で検証)@font-face { font-family: "MS PGothic"; src: local('NotoSansCJKjp-Regular'); }
紹介ページにあるよう、場合によっては"NotoSansJP-Regular"などとしなければいけない場合があるかもしれません。
https://www.google.com/get/noto/help/cjk/ -
@Takaaki ありがとうございます。
いずれの表記にしても解決しませんでした。
それで気になったのは、OS とブラウザのバージョンは同じ環境でも、マシンによって症状が出たものと出なかったものがあったことです。
今回は、症状が出た環境で異なるブラウザでの報告になります。キャッシュなどが影響しているのでしょうか?
ひとまずプロファイルのリセットなどを試みて、解決を図りたいと思います。ありがとうございました。
-
Aahojo moved this topic from 質問・相談・議論 on