WebSlate のパフォーマンスとセキュリティ
パフォーマンス
WebSlate は読み込まれた Web ページであるため、パフォーマンスへの影響を考慮することが重要です。
通常、シーンは 60fps でパフォーマンスが高く、アクティブな WebSlate は最大 10 個です。 コンテンツに関係なく、シーンに配置された WebSlate の数に比例して、フレームレートと一般的なパフォーマンスの低下が観察される場合があります。
コンテンツは、シーンの更新およびレンダリング スレッドとは別のスレッド上の WebSlate で読み込まれて実行されるため、フレーム レートに直接影響を与える可能性は低くなります。 ただし、ランタイムの複雑さとメモリ使用量の両方の点で、Web ページで実行される JavaScript のコストを考慮することが重要です。
パフォーマンスを節約するために、30 個以上の画面外の WebSlate は自動的に中断されます。 画面に戻るとすぐに再開されますが、これは、ホストされているページでアクティブに実行されているサービスに影響する可能性があります。 これが問題になる場合、開発者はプレハブの [中断の防止] チェックボックスを使用して中断を無効にすることができます。 これにより、これらの WebSlate が常にアクティブなままであるため、シーンで消費されるリソースが増える可能性があることに注意してください。
WebSlates には既定で外部ナビゲーション UI がないため、ベスト プラクティスはカスタム URL のみを読み込みます。そこでは、サイト ナビゲーションが循環的であり、ページ内で実行できます。 これは、ナビゲーション サイド バーやハブ ページへのリンクなどを使用して行うことができます。
コンテンツ パフォーマンス アナライザー (CPA) ツールには、Unity のレンダリング パイプラインがフレーム内で WebSlate をレンダリングするのにかかる平均時間を測定する WebSlate アナライザーが含まれています。
測定は Unity のプロファイラー レコーダーに基づいており、再生モードが必要です。 アナライザーは、カメラを各 WebSlate 上に移動して、十分なプロファイラー サンプルを収集し、平均レンダリング時間を計算します。
これにより、Unity のレンダリング パイプラインのコンテキストでの WebSlate レンダリング時間の第一段階の高度な分析が提供されます。 WebSlate コンテンツ自体のフレーム レートは提供されません。
Unity のレンダリング パイプラインが WebSlate をレンダリングするためのしきい値 (現在は 10 ミリ秒) を超えた場合、CPA ツールによって警告が表示されます。
パフォーマンス プロファイラーでも同じ測定値を使用できます。 パフォーマンス プロファイラーのグループは、通常、カテゴリの予算許容量を超えると、色が緑色から赤色に変わります。 現時点では、WebSlate グループは、適切なレンダリング時間の予算が WebSlate に対して合理化されるまで緑色でのみ表示されます。
セキュリティ制限
WebSlate は、移動先の URL にロックされ、悪意のあるリダイレクトを防ぎます。 許可されたドメインとして明確にリスト化されていない限り、外部ドメインへの意図しないハイパーリンク ナビゲーションはすべてブロックされます (以下を参照)。
WebSlate は、初期ドメイン内のナビゲーション、または指定された URL とサーバーのリダイレクトに制限されます。
WebSlate 内のナビゲーションは、HTTPS のみに限定されます。
Web カメラ、マイク、位置情報へのデバイス アクセスがブロックされます。
WebSlate ドメインの許可リスト
フィッシングなどの意図しない URL ベースの攻撃ベクトルに対するセキュリティを確保するために、WebSlates は既定で、WebSlate に読み込まれた最初のページのドメインに含まれる URL へのナビゲーションを制限します。 たとえば、https://www.microsoft.com/ で起動された WebSlate は、URL が "www.microsoft.com" で始まるページにのみ移動します。 これにより、ユーザーが意図したナビゲーション フローから誤って分岐することがなくなりますが、ユーザー認証などの一部のユース ケースでは、その間にサブドメインまたはサード パーティの認証プロバイダーへのリダイレクトが発生する可能性がある、過度に制限の厳しい既定値になる可能性があります。
これらのユース ケースに対応する方法は、WebSlate の許可リストにドメインを追加する方法です。
ドメインを自動的に追加する (推奨)
Unity エディターで WebSlates を使用する場合は、[許可されたドメインの収集] を有効にするオプションがあります。 これにより、ドメイン ナビゲーション制限が削除され、再生モードで実行しているときに自由に移動してシナリオをテストできるようになります。 再生モードで移動すると、WebSlate によってバックグラウンドでアクセスしたドメインがログに記録されます。
この場合は、microsoft.com からナビゲーションを拡張して、learn.microsoft.com も含めます。
再生モードを終了すると、最上位レベルのアセットフォルダーに "WebViewAllowedDomains.asset" というアセットが表示されます。
このアセットをクリックすると、最初の URL のドメインを超えてアクセスした追加ドメインの一覧が表示されます。 WebSlate コンポーネントの [許可されているドメイン] フィールドに値を右クリックしてコピーし、貼り付けることができます。
注: このオプションは、アップロードされたシーンでは有効にできません。 [許可されているドメインの収集] を有効のままにすると、最終的なシーンの制限は削除されません。 ただし、許可されているドメインの一覧は保持され、WebSlate にドメインが追加されている限り、ナビゲーションが許可されます。
ドメインを手動で追加する
必要なドメインが既にわかっている場合は、[許可されているドメイン] ドロップダウンを展開し、Unity GUI の一覧に補助ドメインを追加することで、それらを WebSlate に手動で追加できます。