この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2016年2月)

2016年2月6日

Windows用Firefox 64bit版がいよいよ「本当の」正式リリースに近づいてきたか?
初回投稿日時: 2016年02月06日12時12分59秒
最終更新日時: 2016年02月06日12時28分58秒
カテゴリ: Firefox Flash IME Mozilla47 plugin Windows バグ修正
SNS: (list)

……なんてタイトル付けると、「いやいや、Windows用Firefoxの64版も前から正式リリースされてんじゃねーか」とツッコミ入れられることが多いんですが、元々、Windows用64bit版はテクニカルプレビュー扱いでのリリースで、こっそりと各国語版の Firefox をダウンロードでのみ行われるという話でした。

64bit版を正式リリースにすると聞いた時には既にNightlyでプラグインプロセスを強すぎるサンドボックスで保護していたため、IMEが全く使えないことが分かっていました。このままリリースすると問題が大きすぎるから製品イメージの低下が深刻だぞと指摘してみたんですが、以下、実際の下り。

Masayuki Nakano [:masayuki] (Mozilla Japan) 2015-09-04 09:24:08 PDT

(In reply to Benjamin Smedberg [:bsmedberg] from comment #1)

> Regression from sandboxing. We're not going to block Fx64 release on this.

If sandboxing is enabled in default settings, it sounds bad because Japanese major video site, Nico Nico Doga can post comment from Flash Player's input field (and the comment is scrolled over the movie). Therefore, cannot use IME on x64 build makes our product image for them too bad since the regression causes that they cannot use one of main purposes to use web browser.

Benjamin Smedberg [:bsmedberg] 2015-09-04 09:29:36 PDT

This is for Firefox 64-bit, which is still a tech preview and will not go to anyone by default. We're not willing to ship it without a Flash sandbox.

Masayuki Nakano [:masayuki] (Mozilla Japan) 2015-09-04 09:36:45 PDT

(In reply to Benjamin Smedberg [:bsmedberg] from comment #3)

> This is for Firefox 64-bit, which is still a tech preview and will not go to
> anyone by default. We're not willing to ship it without a Flash sandbox.

Did you mean that Firefox x64 for Windows won't be released as official release? I.e., users will need to one or more steps for downloading the x64 version than x86 version? E.g., they need to click a link like "Other languages" in the current download page? (Or hidden, like ESR) If so, it sounds not bad.

Benjamin Smedberg [:bsmedberg] 2015-09-04 09:49:24 PDT

Yes, it will only be available from the "all systems and languages" link.

という感じでした。ところが、ふたを開けてみると、MozillaのFuture Releasesというブログが取り上げたので誤解されたのか、「正式リリース」として大々的に各種ニュースサイトでデメリットの説明抜きに多くの記事が書かれました。その結果、多くのユーザさんが、完全に普通のリリースと思って気軽に使い始めたようで、案の定、このFlashでIMEが使えない問題や、その他、インストールパスの問題等々の初歩的な問題で苦情を書かれているのを多々見かける形になっていました。

しかし、ここに来て、Firefox 47では多くの問題が解決されてきています。特に日本人にとって大きいのが、FlashとIMEの問題。これについては、えむけいさんが、How about forcing windowless mode on Win64 Fx? We only support Flash anyway.と提案されていたのですが、当時は問題が大きすぎて現実的な案に思えませんでした。しかし、Mozillaのエンジニアリングのお偉いさん達が、Adobeと協力して問題解決にあたることを決断し、windowedモードと同様の動作を実現するべく様々なチームを巻き込んでwindowlessモードの大がかりな改善が始まりました。

日本からの大きな貢献は、windowlessモードでも未確定文字列をFlash Playerがインラインで扱えるように修正したBug-org 1208944です。誠さんががんばってくださって、Flash Playerが利用しているIMM APIのうち、重要なものをhookし、Gecko側でそのAPIの呼び出しに応対するというものです。私には無理な高度な修正をやっていただけて無茶苦茶助かりました。

しかもこの修正、Geckoで私が各国語のIMEの色んなバグに対応し、ハックを行った後に生成されたプラットフォーム非依存な情報からhookしたAPIに返す値を再計算しているので、そのハックの恩恵の全てをFlash Player上で受けられるようになっています。Adobeにリストアップしてもらった利用中のIMM APIの一覧からすると、例えば、ANSI APIにしか対応していない一部のIMEはFlash Player上ではクラッシュしているものと思われますが、その部分もUnicode API経由で期待通りの値を返すようになったので、修正されていることになります。

他にもwindowlessモードの描画パフォーマンスの改善が行われているようです(この辺、関連バグも含めてよく分からない)。

そしてついに、Bug-org 1201904の修正が入り、Windows用Firefox 64bit版ではサンドボックスをデフォルト設定のまま有効にしていると、全てのFlash Playerが、この改善された今までとは違うクオリティのwindowlessモードで動作するようになったところです。

IMEに関してはまだまだ問題が出てくる可能性があるとの事なので、64bit版Nightlyでニコニコ動画等を利用されている方は、是非、見つけた問題を報告してください。プロダクトのクオリティの良さの大半はテスタさんからのバグ報告にかかっていますのでよろしくお願いします。

関連するかもしれないエントリ

関連するかもしれないエントリを発見できませんでしたが、無いとは限りません。