ニュース
WebAssembly版「Google Earth」がベータ公開 ~「Google Chrome」以外でも動作
ただし「Firefox」「Opera」はシングルスレッドのみ
2019年6月24日 10:00
米Googleは6月20日(現地時間)、Webバージョンの新しい「Google Earth」をベータ版としてプレビュー公開した。Web標準技術の1つ“WebAssembly(WASM)”で開発されており、「Google Chrome」以外のWebブラウザーでも利用できるのがメリットだ。
「Google Earth」は、もともとデスクトップで動作するネイティブアプリとして、C++言語で開発された。スマートフォンの普及に伴いモバイルアプリ(iOS/Android)へ移植する際も、「Objective-C++」や「Android NDK」といったC++言語の資産を活用できるソリューションが活用された。そのため、「Google Earth」のコードベースは大部分がC++言語となっている。
そうした経緯もあり、2017年4月にリリースされた「Google Earth for Web」ではネイティブコードを実行できる「NaCl(Google Native Client)」で実装された。しかし、これには「NaCl」をサポートする「Google Chrome」でしか動作しないという欠点がある。「NaCl」やその後継にあたる「PNaCl」は廃止 されてしまったこともあり、Web標準技術である“WebAssembly”への移行が待ち望まれていた。
今回発表された「Google Earth」は“WebAssembly”と“WebGL2”で実装されているため、「Firefox」や「Opera」でも動作する。“EdgeHTML”エンジンを採用する「Microsoft Edge」は“WebGL2”をサポートしないため動作しないが、“Chromium”エンジンとなる次期バージョンの「Microsoft Edge」ならば利用できる。
ただし、Webブラウザーによってマルチスレッドのサポート状況は異なる。「Google Earth WebAssembly」はパフォーマンス向上のためマルチスレッドで実装されているが、それには“SharedArrayBuffer”と呼ばれるブラウザー機能が必要だ。ところが、この機能は昨年話題を呼んだ“Meltdown”や“Spectre”といったCPU脆弱性へ対処するため、多くのWebブラウザーで無効化された(たとえば、「Firefox」ではv57.0.4で無効化された)。
「Google Chrome」でも一度無効化されたが、その後“厳密なサイト分離(Strict site isolation)”と呼ばれるセキュリティ機能が導入されたため、“SharedArrayBuffer”が再び有効化された。しかし、「Firefox」や「Opera」ではまだ“SharedArrayBuffer”を利用できないため、シングルスレッドでしか「Google Earth WebAssembly」を利用できない。
なお、Appleの「Safari」は“WebAssembly”を実装しているが、“WebGL2”を完全にはサポートしていない。そのため、「Google Earth WebAssembly」は「Safari」では動作しないとのこと。