G-ジェット

スマホ・PC・デジタル家電からwebサービス・アプリのニュースやレビューをお伝えする総合ガジェットサイト

ChromeでJavaやUnityなどNPAPIを利用したプラグインが正常に動作しない!?その原因と解決方法

time 2015/05/12

chrome-plugin-doesntwork
WebブラウザGoogle ChromeでJavaなどのプラグインが動作しない現象が起きることが判明しました。これはChromeがNPAPIをサポートしなくなったのが原因で今回はその詳細と解決方法についての記事です。

sponsored link

Javaプラグインが起動しない?

無線LANルーターを買い替えたのでスピードテストをしてみようとブラウザ(Chrome)を起動、サイトにアクセスし測定をしようとしたところ測定ボタンのところにパズルのような画像が表示され次に進むことができませんでした。

chrome-pazzle-image

表示された画像によると「このプラグインはサポートされていません。」とのこと。

chrome-nonsupport-plugin

今回、測定に使用したサイトはRadishのRadish Network Speed Testing。RadishによるとJavaが正常に動作していないことが原因のようです。

注】上のボックスに測定開始ボタンが正しく表示されない場合、JAVAのシステムが存在しない、または正常に動いていないと思われますので上記よりJAVAのシステムをダウンロードしてください。

しかし、Google Chrome自体は以前から使用しており、これまでも何回かRadishでスピードテストをしたことがありました。その時も、Javaは正常に動作していました。
なので久しぶりだったということもありますが、できなかったのが疑問でした。

javajava

基本的にJavaは自動更新にしているのでバージョン違いで動作しなかったということも無さそうですが、一応、JavaのバージョンをチェックするためにJavaを提供しているOracleへアクセスしました。

java-versioncheck

まずJavaプラグインのバージョンを確認します。するとまた先ほどのパズルのピースの画像が表示されます。
バージョンの確認はできないようなので一先ずプラグインそのものをアップデートしてみることに、すると

java-nonsupport-chrome

2015年4月のアップデート(バージョン42)でChromeはブラウザがプラグインをサポートするという標準を無効化したとのことです。

これはつまりどういうことなのかというと、ChromeがChromeがバージョン42にてJavaプラグインなどが利用するプラグイン・アーキテクチャ「NPAPI」をサポートしなくなったことが原因のようです。

プラグインが動かない原因はChromeがNPAPIをサポートしなくなったことにあった

059 006

Webブラウザ用のJavaプラグインはクロスプラットフォーム型のプラグインアーキテクチャである「NPAPI」というAPIを利用してブラウザにJavaの機能を提供しています。

JavaだけでなくMicrosoftのSilverlightやFacebbok Video、ゲームで使われるUnityなどもブラウザ用にはNPAPIを使っているようです。これらのプラグインも全てChromeで使えなくなったということになります。

このNPAPIはChromeではサポートされなくなりましたが、今まで主要なWebブラウザで長年に渡ってサポートされてきたもので、現在でもサポートされているものが多いようです。

ではなぜChromeがサポートしなくなったのかということですが、このNPAPIが長年に渡ってサポートされてきたことにあるようです。
長年、すなわちNPAPIは設計が古いプラグインインターフェイスで、安定性やセキュリティ、開発側のメンテナンス性などに問題を抱えているようです。

Chromeはブラウザのセキュリティに重点を置いたブラウザでもあり、このような古い設計のプラグインは脆弱性などの懸念からサポートをしたくなかったことが分かります。
しかし、現在Javaが使えないことも事実としてあるわけなので、この問題を解決するためにプラグインを動作する方法をご紹介します。

ChromeでサポートされなくなったJavaやUnity、SilverLightのNPAPIプラグインを有効化させる方法

switch_on

Chromeではアドレスバーに「chrome://flags/」と入力することで、試験運用機能の一覧にアクセスすることができます。
その中の項目に「NPAPIを有効にする」というのがあるので有効にします。

npapi-chrome

有効にしたらブラウザ下部にChromeを再起動できる表示がでてくるので再起動します。

chrome-reboot-flgs

再起動したらJavaが使われているページで動作するか確認してみましょう。

radish-speedtest

きっかけとなったRadishスピードテストでは正常に測定ボタンが表示され、動作が確認できました。

java-version-clear

順番がおかしい気がしますが、Javaのバージョンチェックのページでも動作を確認することができました。

なぜGoogleはNPAPIのサポートをやめることをユーザーに告知しなかったのか

ChromeでNPAPIを再び有効化する方法は分かりました。しかし、腑に落ちないのがNPAPIのサポートをやめることをユーザーにハッキリと分かる形で告知しなかったGoogleの姿勢です。

JavaやSilverLightを使ったWebサービスというのは非常に多く、NPAPIのサポートをやめればそれらを利用しているユーザーにはかなりの影響があるはずです。
現実に、筆者もJavaのプラグインが利用できず、その原因も当初は分かっていませんでした。

これはJavaやSilverlight、Unityなどを利用するユーザーが多いことにあると考えられます。
NPAPIのサポートをやめることを馬鹿正直にユーザーに告知したとすると、それらの利用者は確実に他のNPAPIをサポートしているブラウザに移行します。

ブラウザの利用者が減少することで困るのはChromeの開発・提供元であるGoogleです。利用者がいなくなっては開発した意味が無くなりますからね。

真にユーザーのことを考えるならば、ユーザーにハッキリと分かる形で告知。その解決方法も合わせて提示するべきでしょう。今後はそのような対応であることを望みます。

Googleは2015年末にもNPAPIを完全に廃止することを計画しており、それ以降はJavaやSilverlightを使ったサービスはChromeでは利用できません。
主要ブラウザではIEやFirefox、SafariなどがNPAPIをサポートしているので今のうちに備えておこうと考えている人は切り替えておきましょう。

NPAPIの廃止が近づけばどのブラウザにすればよいかまた記事にしてお伝えいたします。

sponsored link

down

コメントする




カテゴリー

2016年12月
« 11月    
 123
45678910
11121314151617
18192021222324
25262728293031


sponsored link