ニュース

WebAssembly版「Google Earth」がベータ公開 ~「Google Chrome」以外でも動作

ただし「Firefox」「Opera」はシングルスレッドのみ

「Google Earth WebAssembly(WASM)」

 米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(WASM)」。見た目は現行の「Google Earth for Web」と変わらない

 今回発表された「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」を利用できない。

一部のWebブラウザーでは動作しなかったり、シングルスレッドのみの動作となる

 なお、Appleの「Safari」は“WebAssembly”を実装しているが、“WebGL2”を完全にはサポートしていない。そのため、「Google Earth WebAssembly」は「Safari」では動作しないとのこと。