[この記事は Saurabh Gupta、Google Apps Script プロダクト マネージャーによる Google Apps Developers Blog の記事 "Google Apps Script: An update to HtmlService" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

2014 年 12 月に発表した HtmlService 向けの iframe の sandbox モードにより、アプリケーションのユーザー インターフェース(User Interface: UI)のスピードは向上しました。また、クライアント上で多様な JS ライブラリを使用できるようになりました。それ以降、iframe の sandbox モードの改善を継続的に進め、その結果として、Firefox のサポート、ファイルのアップロード、トップ ナビゲーションのサポート、Google Picker API のサポート改善を含む多くの新機能を追加してきました。iframe の sandobox はより高速な UI を提供し、NATIVE と EMULATED モードよりも性能が高いため、今後は iframe の sandbox モードをご利用ください。

今後、HtmlService の EMULATED モードと NATIVE モードは推奨されません。スクリプトの移行に十分な時間を確保するため、数か月かけて段階的に EMULATED モードと NATIVE モードを廃止していく予定です。

この移行を支援するため migration guide(移行ガイド)が提供されています。変更が必要になるのは、移行ガイドに記載されている機能を使用している場合のみであり、多くのスクリプトでは変更は不要です。移行ガイドでは、互換性が保証されない変更についてもいくつか紹介しています。iframe の sandbox モードへの切り替えによる動作不良を確実に防止するため、HtmlService を使用するスクリプトはすべて見直しを実施してください。

今後の予定は以下のとおりです。

2015 年 11 月NATIVE モードが明確に指定されていない限り 新しい スクリプトすべてに対して、iframe の sandbox モードがデフォルトとして使用されます。たとえば既存スクリプトを複製する場合、sandbox モードに NATIVE を明確に設定しない限り、新しいスクリプトでは iframe の sandbox モードが使用されます。

2015 年 12 月、 (正確な日付は Sunset Schedule をご覧ください)、EMULATED モードの廃止。EMULATED モードを明確に指定しているスクリプトでは iframe の sandbox モードがデフォルトになります。

2016 年 4 月 28 日、 スクリプト内で NATIVE モードを明確に指定していない限り、 すべての スクリプトのデフォルトは iframe の sandbox になります。たとえばスクリプトにモードが指定されていない場合、NATIVE モードが使用されていたとしても iframe の sandbox モードへ切り替えられます。UI が iframe の sandbox モードで正常に動作することを確認してください。

2016 年 6 月 30 日、 NATIVE モードの廃止。NATIVE モードを明確に指定しているスクリプトでは iframe の sandbox モードがデフォルトになります。

ご不便に思われることもあるかもしれませんが、段階的に廃止を実施することで移行プロセスの負担を減少できると考えています。デベロッパーのみなさまが Google Apps Script を使用して優れたアプリを制作できるよう、斬新で安全な環境を提供することが私たちの目標です。

Posted by Eiji Kitamura - Developer Relations Team