あれこれ備忘録@はてなブログ

勉強したことやニュースや出来事を備忘録として書いていきます

このブログには広告が含まれます

Firefox Quantumが激重になる問題が発生中

2017/12/08 追記

Mozilla、「Firefox」v57.0.2を公開 〜“Critical”な脆弱性を1件修正 - 窓の杜

またバージョンアップされてます。

今度こそ、不具合直ったんでしょうかね?


2017/11/30 追記

「Firefox Quantum」v57.0.1が公開、一部環境で動作が異常に遅くなる問題を修正 - 窓の杜

RealPlayerの処理をブロックするように修正された新しいバージョンが公開されたようです。


主にWindowsで起こっているらしい。

うちの環境ではならなかったのだが、どうも少なくない数の人にFirefoxが重くなる問題が発生しているようだ。

バージョン56のときに、Firefoxを起動してしばらくすると反応が極端に鈍くなる問題が起こった。

そのときはプロファイルを作り直したり、リフレッシュしたら改善した。

なので古いプロファイル設定が悪さをしているのだろうと思っていた。


プロファイルのリフレッシュで直る場合、原因はこれの可能性が高いと思う。

Firefox が CPU リソースを大量に消費する | Firefox ヘルプ

この記事に書いてあるようにプロファイルディレクトリ以下のcontent-prefs.sqliteを削除する。

あるいは設定のプライバシーの所か、メニューやツールバーの履歴でサイトの設定をクリアすることができるので、それだけ削除できればプロファイル全てを初期化せずに済む。


バージョン57でも同じ問題がそのまま残っているのではないか?と考えていたのだが、どうもプロファイルのリフレッシュでは直らないようだ。

原因として候補に上がっているのがRealPlayerに付属しているRealDownloaderというアプリだ。

これはブラウザでアクセスしたページにある動画をダウンロードできるようにしてくれるものらしい。

RealDownloaderの環境設定で"「このビデオをダウンロード」機能をchrome、Edge、firefoxブラウザで有効にする"のチェックを外すと無効にできるようだ。

もう一つは、アクセシビリティサービスとFirefoxの相性のようだ。

アクセシビリティサービスの説明は以下のページ。

アクセシビリティサービス | Firefox ヘルプ

主にテキストの読み上げに使われているというので、目の不自由な人など障害者向けの機能ではないかと思う。

これがブラウザを極端に遅くさせる原因として考えられていて、Mozilla Japan コミュニティのツイッターアカウントが定期的にツイートして呼びかけている。

極端に遅くなる原因とは言えないが、もともとアクセシビリティサービスを利用しているとFirefoxはその処理を待つために遅くなってしまうようだ。

タブバー上の人型アイコンを消す(追記あり) - Mozilla Flux

積極的にアクセシビリティサービスを使っているのでなければ、Firefoxへのアクセスは遮断してしまっていいと思う。そうしたサービスがFirefoxにアクセスする場合、ブラウザとしては処理を中断して応答しなければならず、知らず知らずのうちにパフォーマンスの低下を招いている可能性もあるからだ。

興味深いのは、アクセシビリティサービスとは関係ないのではないか?と思われるアプリケーションまたはサービスがアクセシビリティサービスを利用したものとして判断されていることだ。

記事ではATOKインサイトがその一例としてあげられている。

ATOK 2016 の新機能「ATOK インサイト」が強力すぎる件 | Open the Next

この機能、どういうものかと言うと、その時に開いている対応アプリケーション (例えば Safari などのブラウザ) で表示しているページの単語などを優先的に候補表示するものです。

これは確かに読み上げ機能と同じでページ内の文書を利用しているのでアクセシビリティサービスを利用しているのだろう。

そしてRealPlayerのアドオン、多分、RealDownloaderだろうがこれもアクセシビリティサービスを使ってブラウザにアクセスしているものに入るらしいのだ。

このツイートによれば、「アクセシビリティサービスによるブラウザーへのアクセスを止める 」にチェックを入れるとRealPlayerのアドオンは無効になるとのこと。

このATOKインサイトとRealDownloaderはどちらも前から便利だという意見の反面、パソコン、ブラウザが重くなるとかメモリの消費量が大きすぎると言われているようだ。

ATOK2016の新機能「ATOKインサイト」がメモリを使いまくっているので、「一時学習候補」をオフにした件 | 部長ナビのページ

OSもMacでブラウザもSafariなので直接関係ないが、メモリ食いやブラウザを重くしているそう。

セキュリティソフトとRealDownloaderの相性が悪いらしく、無効にしたらFirefoxが問題なく起動したとある。

Chromeなら使えるのに、FirefoxでRealDownloaderが使えなくする設定で回避して、RealDownloaderの責任にして良いのか?というツイートもあったが、Chromeでも問題は起こっていたのだ。

場合によっては、Windows全体に影響していたようだ。

RealPalyerを消しても、RealDownloaderは残ってしまうという、かなりお行儀の悪いアプリケーションらしい。

CentOS 7 に PHP 7.1 と phpMyAdmin をインストール - Qiita

正常にログインできない原因としてもあげられている。

RealDownloadeの問題だと考えても良いのではないだろうか?

必要ないなら無効にしたり、アンインストールしたりするのが良いのではないかと思う。

about:supportとURLバーに直接入力するか、メニューの「ヘルプ」の「トラブルシューティング情報」で見られるページに「アクセシビリティ」という項目があって、ここでこの機能の有効・無効の有無やこれを利用してFirefoxにアクセスしているアプリケーションの確認ができる。

Firefox 57 : How to disable Accessibility Services | Techdows

Firefox 57 lets you Prevent Accessibility tools from accessing the browser | Techdows

UI オートメーションという機能の一部のツールもアクセシビリティサービスを利用しているようだ。

WinRT/Metro TIPS:Inspectツールを使ってUIを調査するには?[Windows 8/Windows 8.1ストアアプリ開発] - @IT

うちの環境では、「アクセシビリティサービスによるブラウザーへのアクセスを止める 」にチェックは入れておらず、無効にはなっていないが、それを利用しているアプリケーションがないようだ。

いずれにしろ、「アクセシビリティサービスによるブラウザーへのアクセスを止める 」ことでFirefox Quantumが極端に重くなる現象は回避できるようだ。

しかし、これと関係があるかわからないが、メモリ消費量が極端に大きくなる現象も起きているようだ。

ttps://www.reddit.com/r/firefox/comments/74ulbr/insane_firefox_memory_usage_v570b6_on_mac/

ttps://www.reddit.com/r/pcmasterrace/comments/7e4dnx/firefox_insane_memory_usage/

RedditのURLをリンクとして貼り付けるとブログ記事が更新できなるので上のような形で貼り付けた。

ツイッターでも同じような問題に悩んでいる人が幾らかいる。

Bugzilla@Mozillaで検索してみたら、バージョン57が公式版になるまえの段階での同じような問題があった。

1408229 - High RAM Usage(or memory leak) on latest Firefox Beta/Nightly

Memory LeakとかHigh Memory(RAM) Usageなどでいくつか似たようなものがある。


Reddit内のAmazon広告がものすごくメモリを消費しているというバグとしても報告されているようだ。

1418326 - High memory usage due to amazon ads on reddit


しかし、こちらは解決策・回避策が見つかっていないようだ。

メモリがリークしている場合には効かないかも知れないが、メモリ量を抑える方法としては、「プロセス数を減らす」「履歴のページデータを保存する数を減らす」という2つが考えられる。

Firefox Quantumではマルチプロセスでタブを管理し、高速化と安定化をはかっている。

しかし、マルチプロセスはメモリ消費量が大きくなる。

メニューの「設定」で設定画面を開き、「一般」タブの「パフォーマンス」という項目で「推奨のパフォーマンス設定を使用する」のチェックを外す。

すると「ハードウェアアクセラレーション機能を使用する (可能な場合)」と「コンテンツプロセス数の制限」という2つの項目が現れる。

「コンテンツプロセス数の制限」のプルダウンメニューで数値を変更する。

プロセス数は標準で4になっているようなので、これを2や1にする。

Firefox Quantumは1つのページを表示するのにマルチコアを使っているらしいので、プロセス数を1にしても十分に速いのではないかと思う。

実際、私はプロセス数を1にして使用している。

もう1つはこれらのページを参考に。

http://level.s69.xrea.com/mozilla/index.cgi?id=max_total_viewers

Mozilla Re-Mix: Firefoxのセッション履歴保存方法を変更してメモリ消費を抑える方法。

訪れたページのデータをメモリに保存しておき、戻ったときにすぐに表示できるようにする機能だ。

about:configで詳細設定ができるページを開き、「browser.sessionhistory.max_total_viewers」を検索、その項目の数値を変更する。

標準では搭載メモリに応じて自動的に決定される。

これを8やそれ以下に決め打ちする。

またabout:memoryのページで「Free Memory」という項目の「Minimize memory usage」を行うことで、メモリを開放するなどして消費メモリを減らす処理をさせることができる。

「Show memory reports」の「Measure」を押すとFirefoxの中のメモリ使用量の内訳が表示される。

バグレポートを送るときにこれを貼り付けるなどすると良いということになっている。

ブラウザを最小化したときにメモリを小さくする設定があったな?と思ったのだが、あれはスワップ領域に移動させて物理メモリの空きを増やすだけで、メモリ消費量自体は減らず、かえってHDDやSSDの書き込みやブラウザを再び表示させたときの読み込みを増やしてパフォーマンスを低下させるようである。

ちなみにこの問題も私の環境では起きなかった。

バージョン56から色々と動作に問題が起こって、他のブラウザに移行した人がいるようだから、早く解決すると良いと思う。

p5.jsのテスト

See the Pen empty-example by massann (@massann) on CodePen.

ちょっと間違えているけど、円が回っているように見えるように書いてみた。

p5.jsというのはProcessingというJavaベースのグラフィック開発のためのプログラミング言語Javascriptに移植したものだそうだ。

ちょっとニューラルネットワークの初歩の初歩を勉強したときに使ってみたら、結構、簡単にグラフィックを描くことが出来て感動した。

はてなブログに埋め込むなどして使いたかったが基本的に使えない。

Githubなどを使えば良いらしいがちょっと使いたいだけだからアカウントを作るのは敷居が高い。

仕方ないのでCodePenにしてみた。

無料版だと10ファイルくらいしか作れないらしいが、ちょっと試してみるだけだから良いかな。

バージョン57以降のAndroid版Firefoxのアドオン

実はAndroidFirefoxでもアドオンが使えなくなった

バージョン57になって、動作は速くなったが古いアドオンが使えなくなったという不満や戸惑いは消えていない。

arekorebibouroku.hateblo.jp

そして、その状況はAndroidFirefoxにも来てしまった。

今まで使えていたアドオンが使えなくなったのだ。

PC版と違って、Android版のこの対応についてはほとんど知られていなかったのではないか?

ということで、以前、書いた記事で紹介したアドオンの対応状況を調べてみた。

arekorebibouroku.hateblo.jp

前提としてまず言えるのは、Web Extensions版への移行のおかげか、多くの場合、PC版と同じアドオンで対応できそうなことだ。

これならなんとかなるかも知れない。

Adobe Flash Plugin

アドオンではないが、一応、使えなくなったものとしてここに書いておく。

今のバージョンの1つ前のバージョン56で無効になってしまった。

これでほとんどのAndroidのブラウザではFlashが使えなくなった。

Phony

Phony – Android 向けアドオン

ユーザーエージェントを変更できるアドオン。

バージョン57で使えなくなった。

PC版の同様のアドオンで対応可能である。

私が使っているのはこれ

User Agent Switcher – Android 向けアドオン

当然、PCと見た目や使い方は少し異なる。

メニューに「User Agent Switcher - 無効」という項目ができ、これをタップすると別のタブが開いて、UserAgentを選択できる。

ちなみに、Yahoo! JapanをPC版の見た目で見ようとすると、動画ニュースを見たいときWindows上のブラウザとしてアクセスするとFlash Pluginが使われるため、前述のFlash Plugin対応終了のために見られなくなった。

そこで、Mac OS上のFirefoxとしてアクセスすることでFlash無しで見ている。

Yahoo! Japan以外でもこの方法は有効なので、普段はMac OS上のFirefoxを偽装している。

メニューの「アドオン」から「User Agent Switcher (バージョン番号:現在は1.1.0)」をタップする。

するとそこのページに使えるユーザーエージェント一覧が表示されるためにそこをスワイプ(スクロール)する。

一番下の左側に「テキストモードに切り替え」というリンクがあるのでタップする。

テキスト入力欄ができるので、そこに

Mac OS X / Firefox 57 [Desktop]: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:57.0) Gecko/20100101 Firefox/57.0

と入力して、「テーブルモードに切り替え」を選択すると、これが新しいユーザーエージェントとして使えるようになっている。

アドオンタブを閉じて、上で説明したようにメニューからUserAgentを切り替える。

Desktop by Default

Desktop by Default – Android 向けアドオン

UserAgentを偽装していればほとんどのサイトでは問題ないがバージョンアップ時の不具合や、サイトによって、偽装してもモバイル版で表示されてしまう場合がある。

そんなときに常に「PCサイトモード(デスクトップモード)」で見るためのアドオン。

これも使えなくなった。

探してみたところ、「Desktop Only」というアドオンが見つかった。

Desktop Only – Android 向けアドオン

これをインストールすればほぼ問題ないようだ。

しかし、サイトにアクセスしたときに送られる環境変数をチェックできるサイトで調べてみたところ、これもUserAgentを偽装することでデスクトップの表示にしていることがわかった。

これではUserAgent Switcherと同じなので、意味がないだろう。

単純にPC版の表示がしたいだけの人は、UserAgent Switcherをインストールせずにこちらだけインストールすると良いかも知れない。

ただし、Linux上のFirefoxを偽装するためにYahoo! Japanの映像ニュースは見ることができない。

uBlock Origin

uBlock Origin – Android 向けアドオン

広告ブロックのアドオン。

PC版でもAdblock Plusなどよりも軽いとか、Adblock Plugを開発している組織がお金を払った企業については広告をブロックせずに表示すると言ったことをしており、uBlockはこれが無いので乗り換えている人も多い。

広告をブロックする「Adblock Plus」が広告の販売を開始 - GIGAZINE

こちらはそのまま使える。

むしろバージョン57になってから以前にあった不具合がなくなり、問題なく使えるようになった。

QuitNow、CleanQuit

QuitNow – Android 向けアドオン

CleanQuit (Mobile) – Android 向けアドオン

QuitNowはメニューに「終了」という項目をつけるアドオン。

CleanQuitは「CleanQuit」という項目ができて、これを押して明示的に終了するとクッキーや履歴などを消去できるアドオン。

どちらも使えなくなった。

しかし、実はこの機能は今のバージョンのFirefoxには標準で備わっている。

メニューの「設定」を押して設定画面を開き、「プライバシー」という項目をタップする。

f:id:t_massann:20171118151349j:plain

「終了時にプライベートデータを消去」という部分をタップすると消したい項目が現れる。

f:id:t_massann:20171118151513j:plain

ここで消したい項目を選ぶとこの機能が有効になり、メニューに「終了」という項目が現れる。

単に終了するだけということはできないが、「検索履歴」だけを削除するなど影響の少ないものだけを選択すれば、ほぼ終了するだけの用途に使えるだろう。

Toggle JavaScript Enabled

https://addons.mozilla.org/ja/android/addon/toggle-javascript-enabled/

簡単にJavaScriptを無効にしたり、再び有効にしたりできるアドオン。

これも使えなくなった。

ページも削除されてしまっている。

JavaScript Toggle On and Off (WebExtension) – Android 向けアドオン

Javascript Control – Android 向けアドオン

Quick JS Switcher – Android 向けアドオン

幾つか試してみたのだが、どうもきちんとうまく動いていないようだ。

Java ScriptとCookieの動作チェック

環境にもよるかも知れないので上のページなどで確認してみて、使えるようならどうぞ。

Tap Translate

Tap Translate – Android 向けアドオン

ブラウザ上の単語を長押しして選択すると翻訳ができるアドオン。

今のバージョン57でもそのまま使える。

単語を長押しして選択すると右上に「T」と書かれたボタンが表示され、これをタップすることで翻訳結果が表示される。

スマホタブレットでも手軽に翻訳ができてとても便利。

PDF Viewer(pdf.js)

PDFをブラウザ内臓のビューワで見ることができるアドオン。

この機能はPC版では標準搭載になったため、アドオンのページ自体が消えてしまった。

GitHub - mozilla/pdf.js: PDF Reader in JavaScript

AndroidFirefoxでも同じようにしてブラウザでPDFを見たいという人はGitHubでxpiファイルをインストールすることでそれが可能だった。

しかし、今のバージョンのFirefoxでは、インストール時に許可を求めるダイアログは出るものの、ダウンロードしたあと、インストールに失敗しているようだ。

これは外部アプリを使って見るしか無いようだ。

 ###Speed Tweaks (SpeedyFox)

Speed Tweaks (SpeedyFox) – Android 向けアドオン

サーバへの同時接続数などブラウザの設定を変えることで通信を高速化するアドオン。

PC版でもAndroid版でも使えなくなった。

about:configの設定を変更しているので、その項目を手動でいじれば同じことはできる。

また、今のバージョンは標準でも随分と早くなったので、そもそも必要が無いかも知れない。

View Source Mobile

View Source Mobile – Android 向けアドオン

ページのソースを表示するアドオン。

これも使えなくなった。

URLバー(アドレスバー)で、URLの頭に「view-source:」と入力して読み込むとソースを見ることができる。

ちょっと面倒だ。

探してみたところ、同様のアドオンがあった。

View Source – Android 向けアドオン

ときどき使うから、やはりワンタッチで使えるほうが便利だ。

Image Block X

Image Block X – Firefox 向けアドオン

ページの中の画像を読み込むかどうかを切り替えられるアドオン。

Android 版 Firefox で画像をブロックまたは Wi-Fi 環境でのみ読み込む | Android 版 Firefox ヘルプ

AndroidFirefoxには標準で画像の読み込みを有効にするか無効にするか設定することができる。

無効にしていても、ブロックしたというアイコンマークを長押しすることで個別に画像を見られるということになっているのだが、うまくいかないことが多い。

これはワンタッチで切り替えられるので便利。

メニューの「Images are allowed」という項目をタップすると読み込まないようになり、「Images are blocked」という表示に変わる。

そのままではページは変わらないので手動で再読み込みする必要がある。

その他

ブックマークレットはそのまま使えると思う。

また、この記事を書いていて気づいたのだが、AndroidFirefoxについていたリーダーモードはそれを有効にするアイコンがあまり出てこなくなった。

本当に特定のサイトでないとアイコンが出ないのでほとんど使うことはない。

リーダーモードにした記事の一覧表示(リーディングリスト)が無くなったので探すことができなくなっている。

まあ、元々使わないのだが。

どうしても今見ているページをリーダーモードして見たい場合は、表示されているページのアドレスバーをタップしてURLの先頭に"about:reader?url="を追加してエンターでリーダーモードを実行できる。

まとめ

とりあえず、自分の使っているアドオンについて、バージョン57以降の対応状況と代替アドオンを調べてみた。

多くのPC版アドオンが使えるようになると思う。

例えばTampermonkeyは以前はAndroid版では動かなかったが、現在のバージョンでは動く。

Tampermonkey – Android 向けアドオン

Greasemonkeyの代替アドオンだったが、Andoid版はそもそも無かった。

不完全ながらいくらかのスクリプトが動くusi (User|Unified Script Injector) というアドオンはあった。

usi (User|Unified Script Injector) – Android 向けアドオン

バージョンアップされて、今のバージョンでも使うことができるが、Tampermonkeyが使えるなら必要無いかもしれない。