Mozilla Flux

Mozilla関係の情報に特化したブログです。

Firefox 50でページ内検索結果の表示方法が変更(再追記あり)

Firefox page search improvements - gHacks Tech Newsで既報のとおり、Firefox 50ではページ内検索結果の表示方法に変更が加えられた(Bug 384458)。ヒットした結果が目立つように、背景が薄暗く表示される一方、対象項目はかなり明瞭な形で強調表示されるようになっている。加えて、ヒット数の上限も100件から1000件へと引き上げられた。

f:id:Rockridge:20160612210920p:plain

ヒットした項目は、黄色っぽい背景のボックスごと飛び出たような感じになり、特に最初の項目は文字のサイズも大きくなっている。画面内に他にヒットした項目がある場合、それらは薄暗い背景にそこだけ光が当たったかのように明るく表示される。次の項目に移るときは、上記の黄色っぽいボックスが、ビヨーンとジャンプするようなエフェクトがかかる。全体的にかなり派手な印象だ。

f:id:Rockridge:20160612210939p:plain

面白い機能だが、デザインに関しては好みが分かれそうである。元の表示に戻したいときは、about:configの画面でfindbar.modalHighlightとfindbar.highlightAllの設定を両方ともfalseに変更すればよい。

(16/09/18追記)
この機能はFirefox 50では無効化されている。開発中に多数のバグが見つかったためだが、現在ではそれらも概ね修正されており、Firefox 51リリース版では初期設定で有効化される見通しだ(Bug 1291284)。なお、Firefox 50では完全一致検索のオプションが設けられている(Bug 269442)ため、ページ内検索機能の改良点がなくなったわけではない。

f:id:Rockridge:20160919001247p:plain

(16/09/29追記)
上記の追記後、Firefox Nightly 52以外では再び初期設定で無効とされた(Bug 1303248)。初期設定で有効化される時期は、Firefox 52リリース版に延期されたものとみられる。

(17/01/23追記)
本機能が初期設定で有効化される時期は、Firefox 52リリース版である(上記Bug 1291284参照)。

(17/04/30追記)
結局、Firefox 52/53リリース版では有効化されなかった。しかもFirefox Nightly 55でこの機能が無効化されており(Bug 1355596)、当面は現行バージョンが維持されることになりそうである。

Firefox 49で追加された「最近のブックマーク」の表示を消す

Firefox Developer Editionがバージョン49.0a2へとアップデートされた。アップデート後にブックマークメニューを開くと、目立つ位置に"Recently Bookmarked"という欄ができ、5項目のブックマークが並んでいるのに気付くだろう。この「最近のブックマーク」は、ユーザーがWebコンテンツをブックマークすると更新されていく。新規のブックマークへのアクセスを容易にすれば使い勝手がよいだろうという配慮だ。

f:id:Rockridge:20160611225438p:plain

Firefox Nightly 47で導入された(Bug 1219804)新機能だが、Auroraチャンネル(Developer Edition)に移行する際に外され(Bug 1254960)、Firefox 48でも同様の措置がとられた(Bug 1267939)。Firefox 49でDeveloper Editionに投入されたところを見ると、このままリリース版でも有効化されるだろう。

しかし、この新機能を鬱陶しいと感じる人もいるはずだ。星アイコンをクリックしてWebコンテンツをブックマークすると、通常は〔未整理のブックマーク〕(Firefox 48以降は〔他のブックマーク〕)というフォルダに格納されるのだが、その項目がそのままメニューに出てきてしまう。Mozillaとしてはまさにそこが狙いで、どこにブックマークしたのか忘れてしまってもブックマークにアクセスできるようにしたわけだが、大きなお世話という感じもする。自分で格納したフォルダと違うところに項目が表示されるのは嫌だという意見もあるだろう。

また、始末の悪いことに、ブックマークメニューの幅は一番長い項目・フォルダ名によって決まるので、長い名前のブックマークをフォルダに格納してメニューの幅を抑えるようにしていても、項目名がそのまま出る「最近のブックマーク」のせいで台無しになってしまう。個人的にはここが一番許せない点だった。

幸い、「最近のブックマーク」は設定でオフにできる(Bug 1248268)。手っ取り早いのは、ブックマークメニュー上で右クリックしてコンテキストメニューを開き、"Hide Recently Bookmarked"(最近のブックマークを隠す)をクリックすることだ。なお、about:configの設定画面を開き、browser.bookmarks.showRecentlyBookmarkedをfalseに変更しても同じ効果が得られる。

f:id:Rockridge:20160611233048p:plain

Firefox 47におけるアドオン利用の注意点

Firefox 47のバージョンアップ後、アドオン(拡張機能やプラグインなどの総称)を使っていて「あれっ?」と思ったら、以下の点を確認してみてほしい。

デジタル署名の強制を無効化する設定は残存

デジタル署名が付されていない拡張機能をインストール可能にする設定は、Firefox 48で削除されることになった。なのでFirefox 47ではこの設定(xpinstall.signatures.required)は生きている。

MozillaはもともとFirefox 42でこの設定を削除する予定だったが、削除時期は、まずFirefox 44へと延期され、次いでFirefox 46に延び、さらにFirefox 47という話になった。今回で4度目の延期である。開発者向けのノーブランド版Firefoxを提供する準備が遅れているらしい

拡張機能の互換性は低下

Firefox 47では、Firefox 3で導入されたFUELが削除された(Bug 1090880)。FUELは拡張機能の開発者向けにFirefoxが提供していたJavaScriptライブラリで、古くはFirefox 4で廃止される話が出ていたことを思えば、ずいぶん長くもったといえるだろう。

はてなブックマーク拡張は、最新版のバージョン2.3.12でFUEL依存を解消したが、2016年3月末でサポート終了となったはてなスクリーンショット拡張も、FUELを使っていたことが明らかになっている。こうした例から、最近メンテナンスされなくなっている拡張機能が、実はFUELに依存しており、Firefox 47以降で全く動かなくなるといった事態が予想される。

クリックして有効化するプラグインが増加

Firefox 47では、Adobe Flashを除くすべてのプラグインが、初期設定で「実行時に確認する」の設定になっている(Bug 1263630)。MozillaはFlashを除くNPAPIプラグインのサポートをFirefox 53で廃止する計画であり、今回の措置はその一環だ。

今まですぐに再生されていたはずの動画が再生されない場合、アドオンマネージャの〔プラグイン〕の欄を確認してみよう。「実行時に確認する」に設定されているプラグインを「常に有効化する」に変更すれば、挙動が元に戻るはずだ。

Firefox 49からCPUのSSE2命令サポートが必須化

2016年9月13日(米国時間)にリリース予定のFirefox 49以降、SSE2命令をサポートしたCPU上でのみ動作するよう変更が加えられる(Bug 1271755)。これはWindowsに限らず、デスクトップ版Firefoxすべてに共通する措置だ。サポートされていないマシンには、Firefoxをインストールできなくなる(Bug 1271759)ほか、アップデートも提供されなくなる

といっても、実際に影響を受けるユーザーはごくわずかだろう。Intelが開発したストリーミングSIMD拡張命令(Streaming SIMD Extensions:SSE)の第二世代がSSE2であり、Pentium 4で初めて実装され、AMDもOpteron/Athlon 64/Turion 64でこれをサポートしている。なのでIntel製CPUを積んだ2002年製以降のマシンか、AMD製CPUを積んだ2005年製以降のマシンであれば、ほぼ確実にSSE2命令に対応しているはずだ。ちなみに、Googleは2014年5月にリリースしたChrome 35で既にSSE2命令を必須化している(Issue 348761)。*1

今回の措置の発端は、Windows版Firefoxのビルド環境をVisual Studio 2015に更新したことだった。Firefox Nightly 48で当初Visual Studio 2015 Update 1(Bug 1186060)へ、次いでUpdate 2(Bug 1259782)へと切り替えたのだが、意図せずSSE命令を含むプログラムが生成される不具合が生じたため、Microsoftに修正を依頼するか、SSE命令のサポートをシステム要件とするかで議論になった。注意してもらいたいのは、ここでの議論の対象はSSE2ではなくSSEだ。現行のFirefox 46を含めて第一世代SSEすら必須になっていなかったので、まずはSSE命令のサポートが話題に上ったのだ。

Microsoftに対しては連絡がとられたらしく、Visual Studio 2015 Update 3で不具合が修正される見通しであることが後に判明したものの、Mozillaの開発者たちは、古い環境のサポートを切るデメリットよりも、SSE2命令を用いた最適化によって得られるメリットのほうが大きいと判断した。2016年の現在から振り返れば、SSEとSSE2の間に線を引く意味も乏しかったのだろう。結果、Windows版Firefox 49はVisual Studio 2015 Update 2でビルドされ、SSE2最適化が施されることになった(Bug 1271794)。他方、準備期間が必要なのでFirefox 48はビルド環境の更新を見送り、Visual Studio 2013が用いられる(Bug 1270664)。

気になるのはSSE2最適化の効果のほどだが、現在でもIonMonkey/OdinMonkeyというJavaScript/asm.jsコンパイラがSSE2命令を使えるときは使っていることからすると、大きな違いは出ないとみられる。重いWebアプリならば多少は効果を実感できるかもしれない。

*1:なお、Windows向け64bit版FirefoxはもともとSSE2命令が必須化されているため影響を受けない。

Mozilla、Microsoft、Operaが拡張機能のコアAPIの標準化を提案

Mozilla、Microsoft、Operaの三社は、2016年5月2日(米国時間)、W3CのBrowser Extension Community Groupのメーリングリストにおいて、ブラウザの拡張機能におけるコアAPIやマニフェスト、パッケージを標準化することを共同で提案した。今後はGitHubで仕様を公開するとともに、Twitterアカウントでも情報を発信していくようである。

今回の共同提案に至る経緯を補足する記事として、Dev.Opera — For a Better Extensions Ecosystemがある。Operaは、2013年7月時点で、ベンダー中立的なブラウザアドオン用パッケージフォーマットである「NEX」を提唱しており、将来的にはフォーマットの策定作業を標準化団体において行っていくとしていたが、ようやくその努力が実った形だ*1

現時点で、以下のようなコアAPIが提案されているが、上記Dev.Operaの記事においても明言されているように、コアAPIの標準化後もブラウザベンダーが独自のAPIを追加することは許容されている。MozillaのWebExtensionsも標準APIの拡張版と位置づけられることになる。

  • browserAction
  • contextMenu
  • extension
  • i18n
  • pageAction
  • runtime
  • tabs
  • webNavigation
  • webRequest
  • windows

共同提案に記載はないものの、コアAPIがChromeの拡張機能APIをベースにしていることは明らかだ。そもそもOperaはChromiumベースだし、MozillaのWebExtensions APIやMicrosoft Edgeの拡張機能APIもChromeの拡張機能を念頭に置いて設計されている。また、上記Dev.Operaの記事には、他のブラウザベンダーにも提案に加わってもらいたい旨の記載がある。おそらく今回の共同提案の第1の狙いは、Googleを取り込むことにあるのだろう。そしてGoogleを取り込めれば、Appleを包囲できる。言い換えれば、三社はGoogleとAppleという「二大国」が恣意的に拡張機能APIを変更して囲い込むのを防ぐため、いわば「国際法」でコントロールする方向に持っていこうとしているのだ*2

拡張機能がパッケージごと標準化されるならば、開発者の負担が減るだけでなく、ユーザーも大きなメリットを享受できる。拡張機能をインストールする際、どのブラウザに対応したものかを気にする必要がなくなるからだ。この点に関し上記Dev.Operaの記事は、将来的に拡張機能が特定のブラウザ向けAPIを検出して動作を切り替える仕組みになる可能性があると指摘する。つまり、コアを共通にしつつ派生部分を切り替えることで、1つの拡張機能がクロスブラウザで動作するというのが、三社が描く将来像なのである。

*1:今回の共同提案をまとめるまでにも、数か月に及ぶ協議があったらしい。

*2:この件に限らず、Mozillaは国際関係論でいうソフト・パワーの強化を目指しているのかもしれない。Firefoxを自立の価値と強く結びつけたのもその布石か。