FirefoxにおけるFlash Playerの話

0
mentos @tati9koma

2012/06/11 もずはっく日記: Windows版Firefoxのwindowed modeとwindowless modeそれぞれのプラグインの構造 buff.ly/1A5nu5j

2015-03-09 05:31:02
なかのんの旅々(Masayuki Nakano) @d_toybox

これは喋って良い内容のはずだし、明るい話題なのでFlashについてすこし。WindowsではFlash PlayerがChromiumのSandboxを導入して保護モードをFirefoxで有効化してから色々な問題が出ていて、一部の環境下では使い物にならないレベル。

2015-12-12 13:02:08
なかのんの旅々(Masayuki Nakano) @d_toybox

Army of AwesomeでFirefoxに関するトラブルで困っている人を見ていても体感で少なくとも半数はこれが原因。つまり、Firefoxの評判の悪さのかなり大きなウエイトを占めている問題なわけだけど、ようやくどうにかなりそうな気配。

2015-12-12 13:03:50
なかのんの旅々(Masayuki Nakano) @d_toybox

x64版ではFlash Playerに保護モードが存在していないので、代わりにChromiumのSandboxをFirefoxが実装して、その中でFlash Playerを動かすようになっている。ただし、これが原因で、現在のx64版ではFlash上でIMEが利用できない。

2015-12-12 13:05:17
なかのんの旅々(Masayuki Nakano) @d_toybox

これは理由は簡単で、Sandbox内にあるFlash Playerのプロセス内にロードされたIMEから、IMEの動作に必要な様々なローカルリソース、例えば分かりやすいのだと辞書ファイルへのアクセスができないのが原因。これはWindowsのIMEの設計に問題があるんだけれど。

2015-12-12 13:06:33
なかのんの旅々(Masayuki Nakano) @d_toybox

で、windowedモードでは原理上、どうしようもないので、えむけいさんが提案したのはwindowlessモードで行けば良いんじゃないかという案。windowlessモードではIMEはFirefoxがハンドリングして、プラグインに渡す形になるので、IMEは完全に動作できる。

2015-12-12 13:08:21
なかのんの旅々(Masayuki Nakano) @d_toybox

ただし、現状のwindowlessモードには色々と問題があって、そのうちのひとつが別プロセスにあるFlash Playerが、Firefoxのプロセス内のIMEのコンテキストにアクセスできないんで、未確定文字列の表示位置や候補ウインドウ位置が悪くて使いにくいということ。

2015-12-12 13:09:58
なかのんの旅々(Masayuki Nakano) @d_toybox

この問題はFlash Playerの不満を多く訴えている人達の多くが利用しているニコニコ動画のUXを最低なものにしちゃうので、なんとかしないといけないんだけど、私の技術力・守備範囲を超えちゃってるんで困ってた。

2015-12-12 13:12:08
なかのんの旅々(Masayuki Nakano) @d_toybox

で、誠さんと相談したら、IMM APIをフックすることで修正できるとのこと。Adobeとの調整がまだ終わってないけど、最悪この方法でこの問題は改善できる。他にも描画パフォーマンスの問題はあるんだけど、そこは別チームが対応にあたってくれているらしい。

2015-12-12 13:14:31
なかのんの旅々(Masayuki Nakano) @d_toybox

つまり、Windows版のFlash Playerではwindowedモードを強制的にwindowlessモードで呼び出してやることでFirefoxのSandbox内でFlash Playerを実用レベルで動かす目処がたったことになる。

2015-12-12 13:16:07
なかのんの旅々(Masayuki Nakano) @d_toybox

で、時期は不明だけど、Benjaminはx86版でもSandboxを有効にして、Flash Playerの保護モードは設定で無効化させてしまって、安定動作するようにしようと考えてるらしい。

2015-12-12 13:17:42
なかのんの旅々(Masayuki Nakano) @d_toybox

順調にいけばFirefox上でFlash Playerは(今の壊滅的な状態よりは)安定した動作を確保できるし、Sandboxでセキュリティも確保できる。唯一の難点はa11y周りが完全に死ぬことだけど、ここはもうあきらめているっぽい。

2015-12-12 13:19:30
なかのんの旅々(Masayuki Nakano) @d_toybox

描画パフォーマンスの改善の進捗がよく分からないけど、IME側は概ね、強制windowlessモード化readyな状態になってる。たぶん、今年中には作業終わると思うので期待してて欲しいです。

2015-12-12 13:22:22
なかのんの旅々(Masayuki Nakano) @d_toybox

まあなんというか、こんな形で保護モード問題をどうにかできるとは想像もしてなかったんでひょうたんから駒というか。今までの人生で一、二を争うハッキーなお話なんじゃなかろうかと。

2015-12-12 13:25:23
なかのんの旅々(Masayuki Nakano) @d_toybox

ただし、Flash Playerのクラッシュ原因は保護モード以外にもGPUやドライバとの相性問題もあって、そっちはそれこそどうしようもないと思うんで、いわゆる「銀の弾丸ではない」って話なのでそこは勘違いしないで。

2015-12-12 13:28:16
Rockridge @rockridge07

Fx46:windowless modeのFlashプラグインがIMEのcompositionを正しく処理できるようになった。参照:developer.mozilla.org/en-US/docs/Moz… / “1208944 – windowless …” htn.to/aC1iEk

2016-01-03 23:02:23
なかのんの旅々(Masayuki Nakano) @d_toybox

総windowless化が完了すればどこまでFlashに関するクラッシュやハングアップが減るのか、すごく興味深い。

2016-01-05 01:04:25
Makoto Kato ︎︎ @makoto_kato

Landed for windowless only mode for Flash x64. #Firefox Win64 with Flash will only support windowless mode only. bugzilla.mozilla.org/show_bug.cgi?i…

2016-02-04 13:49:51
Makoto Kato ︎︎ @makoto_kato

@d_toybox そう。手動テストはいろいろしたけど (NicoVideoとかDMMのゲームとか)、大きな問題は見つかってはない。

2016-02-04 14:15:02
なかのんの旅々(Masayuki Nakano) @d_toybox

@makoto_kato これで色々と改善されますね。お疲れ様です。

2016-02-04 14:16:04
Makoto Kato ︎︎ @makoto_kato

@d_toybox まだいろいろ出てくると思う。

2016-02-04 14:18:53
Rockridge @rockridge07

Fx47:Windows向け64bit版Firefoxにおいて、Flashプラグインはwindowlessモードでのみ動作する。参照:bugzilla.mozilla.org/show_bug.cgi?i… / “Flash on Firefox Win…” htn.to/5L6tYp

2016-02-05 21:55:37
なかのんの旅々(Masayuki Nakano) @d_toybox

そういえば、聞いている話では、Firefox for Windows x86版も、夏頃にはFlash Playerはwindowedモードを廃止して、強制windlowlessモードにしようと考えているらしい #もずでぶ

2016-04-03 18:34:57
Rockridge @rockridge07

Fx46:plugin.mousewheel.enabledの設定をfalseにしておくと、windowlessモードのプラグイン上でマウスホイールを回した場合でも従来通りページ自体のスクロールが行われる、ということらしい。 htn.to/zJE2mD

2016-04-05 21:39:46