Chrome での 1 回だけのアクセス許可

Chrome 116 から段階的に展開され、権限リクエストに [今回のみ許可] オプションが追加されます。Google の目標は、ユーザーが自分の条件で強力なウェブ機能を簡単に使用できるようにすることです。[今回のみ許可] は、当初はパソコン版で、位置情報、カメラ、マイクなど、最も一般的な権限の一部で利用できるようになります。他の機能やモバイルウェブの権限リクエストは、今のところ変更されていませんが、今後変更される可能性があります。

サイト所有者の方は、影響と推奨事項を確認し、デモをお試しください。

権限に関する新しい UX

Chrome 116 より前の権限に関する UX

ブロックと許可のみが表示される権限に関するメッセージ。
Chrome 116 より前の権限リクエスト。

ユーザーには 3 つのオプションが表示されます。

  • [**許可**]: 永続的な許可。
  • [**ブロック**]: 永続的なブロック。
  • [x] ボタンをクリック: 一時的なブロック。サイトは後で、最大 3 回までユーザーに再度リクエストできます。

権限は、アドレスバーの [サイトのコントロール] または [サイトの設定] で管理できます。

Chrome 116 以降の新しい権限に関する UX

新しい 1 回限りのオプションを含む権限プロンプト。
新しい 1 回限りのオプションを含む権限リクエスト。これは、位置情報、カメラ、マイクに関するパソコン版の新しい権限リクエストです。

ユーザーには 4 つのオプションが表示されます。

  • [今回のみ許可]: 一時的な許可。
  • [**すべてのアクセスで許可**] : 永続的な許可。
  • [**許可しない**]: 永続的なブロック。
  • [x] ボタンをクリック: 一時的なブロック。

ユーザーが [今回のみ許可] を選択した場合、付与される権限は一時的なもの(1 回だけのアクセス許可)になります。有効期間は、ウェブ アプリケーションとの現在の継続的なやり取りに限定されます。

1 回限りの権限は、他の権限と同様に、[サイトのコントロール] または [サイトの設定] で管理できます。

[今回のみ許可] のユーザー メリットと UX デザイン

[今回のみ許可] は、ユーザーに次のメリットをもたらします。

  • 制御の強化。Chrome のユーザー調査によると、ユーザーはウェブサイトの権限について永続的な決定を下す準備ができていないことが多く、権限を付与する見返りに価値を得られるかどうかを評価しようとしています。1 回限りの許可オプションを提供することで、このニーズに対応し、アクセス許可のリスクを軽減できます。
  • 明確さの向上。[今回のみ許可] オプションと [すべてのアクセスで許可] オプションを明示的に示すことで、一方のオプションが一時的で、もう一方のオプションが永続的であることが明確になります。

他のブラウザでの 1 回限りの権限

ウェブでは、Safari や Firefox など、多くのブラウザで 1 回限りの権限がサポートされています。デバイスでの動作を確認するには、https://permission.site/one-time を試してください。位置情報、カメラ、マイクの権限は、特定の動作をする可能性があるため、必ず試してください。

次に例を示します。

  • パソコン版の Safari 16 では、位置情報はデフォルトで 1 回限り(次のナビゲーションまで)です。ユーザーは、チェックボックスを使用して、24 時間アクセスを維持するように選択できます。
  • パソコン版の Firefox 115 では、位置情報、カメラ、マイクの権限はデフォルトで 1 回限りです。ユーザーは、チェックボックスを使用して、永続的なアクセスを選択できます。

影響と推奨事項

1 回限りの権限の影響:

  • 1 回限りの権限の導入は、ユーザーが以前に永続的に付与した権限には影響しません。
  • ユーザーが権限リクエストで決定を下すと、アクセス許可の状態は、アクセス許可が付与されるか拒否されるかのいずれかになります。1 回限りの権限は、この点では違いはありません。
  • ただし、ユーザーが [今回のみ許可] を選択した場合、次回アクセス時に権限リクエストが再び表示されます。

1 回限りの権限に対応するため、サイトの所有者には次のことをおすすめします。

  • 実装が権限に関するベスト プラクティスに準拠していることを確認します。ベスト プラクティスを確認してください。
  • 1 回限りの権限の有効期限を把握します。詳しくは、1 回限りの権限の有効期限をご覧ください。
  • Permissions API が 1 回限りの権限に対してどのように動作するか、有効期限を確認する方法 を把握します。詳しくは、Permissions API をご覧ください。

ベスト プラクティス

[今回のみ許可] を使用すると、機能を試すために権限を付与する可能性が高まりますが、永続的なアクセスを許可する意欲が低下する可能性もあります。そのため、ベスト プラクティスに従うことがさらに重要になります。

  • 権限をリクエストする前に、必要なコンテキストを提供します。ユーザーに、機能のメリットを説明します。
  • 適切なタイミングで権限をリクエストします。ユーザーが自分のペースで特定の機能を使用する意向を表明できるようにします。
  • ユーザーが 1 回限りのオプションと永続的なオプションのどちらを選択したかに関係なく、ユーザーのアクセス期間中は同じエクスペリエンスを提供します。

詳しくは、権限に関する UX をご覧ください。

1 回限りの権限の有効期限

デフォルトでは、すべてのウェブ権限はオリジンにバインドされます。オリジンは独自のアプリと考えることができます。[今回のみ許可] を使用すると、ユーザーはオリジンに 1 回だけのアクセス許可を付与します。基本的に、1 回限りの権限は、ユーザーがそのオリジンとのアクティブなやり取りをしばらく停止すると期限切れになります。つまり、ユーザーが別のタブで別のウェブページに一時的に切り替えてから戻ってきた場合でも、サイトは引き続き機能を使用できます。

詳しくは、次のいずれかの条件が満たされると、1 回だけのアクセス許可の付与は期限切れになります。

  • ページが閉じられた、移動した、破棄された。これには、Chrome を閉じることも含まれます。
  • 権限を付与してから 16 時間が経過した。
  • ユーザーが手動で権限を取り消した([サイトのコントロール] など)、またはエンタープライズ ポリシーによって権限がオーバーライドされた。
  • ページがバックグラウンドで 5 分以上経過した。ただし、カメラやマイクなど、バックグラウンドでの実行が許可されている機能は除きます。この場合、サイトが機能を使用している限り、Chrome は タブバー インジケーター を表示し、ページが機能の使用を停止するまで 5 分のタイマーを開始しません。16 時間のタイマーは引き続き実行されます。

バックグラウンド タブ

ブラウザのタブがフォアグラウンドにない場合、そのタブはバックグラウンドになります。 タブが最小化されていないブラウザ ウィンドウに表示されている場合、そのタブはフォアグラウンドになります。

Chrome では、位置情報など、一部の機能はフォアグラウンド タブでのみ実行できます。バックグラウンド タブでの実行は許可されていません。カメラやマイクなど、バックグラウンド タブでの実行が許可されているものもあります。

ブラウザ ウィンドウのスクリーンショット。アクティブなフォアグラウンド タブと非アクティブなバックグラウンド タブがハイライト表示されています。

タブバー インジケーター

タブがバックグラウンドにあるときに引き続き実行される機能には、タブバー インジケーターがあります。たとえば、カメラにはタブバー インジケーターがあります。

赤いドットが付いたタブ。
カメラへのアクセスを示すタブ インジケーターは赤い点です。

位置情報へのアクセスはページがバックグラウンドになるとすぐに一時停止するため、位置情報にはタブバー インジケーターは必要ありません。

  • 位置情報: ユーザーが example.com にアクセスし、1 回限りの位置情報へのアクセスを許可します。ユーザーが別のタブに切り替えます。これにより、example.com がバックグラウンド タブになります。Chrome ではバックグラウンドでの位置情報へのアクセスが許可されていないため、位置情報へのアクセスはすぐに一時停止しますが、1 回だけのアクセス許可は有効です。ユーザーが 5 分以内に example.com に戻ると、ページは位置情報へのアクセスを再開できます(5 分の有効期限タイマーはリセットされます)。戻らない場合、1 回だけのアクセス許可は期限切れになります。
  • カメラ/マイク: ユーザーが example.com にアクセスし、1 回限りのカメラへのアクセスを許可します。ユーザーが別のタブに切り替えます。これにより、example.com がバックグラウンド タブになります。Chrome ではバックグラウンドでのカメラへのアクセスが許可されているため、カメラへのアクセスは継続できます。Chrome は、使用中の間はカメラのタブバー インジケーターを表示し続け、ユーザーに通知します。サイトがカメラへのアクセスを停止すると、5 分の有効期限タイマーが開始されます。カメラへのアクセスがない状態が 5 分経過すると、1 回だけのアクセス許可は期限切れになります。

Permissions API

API 権限のステータスを照会するには、Permissions API を使用します。

  • ユーザーが [今回のみ許可] を選択すると、Permission API のステータスが granted に設定されます。つまり、期限切れになっていない 1 回だけのアクセス許可と永続的な権限は区別できず、ステータスは同じ granted になります。
  • 1 回だけのアクセス許可が期限切れになると、ステータスは prompt に戻ります。
  • 1 回だけのアクセス許可の有効期限を確認するには、PermissionStatus.onchange イベント ハンドラを登録します。

デモ

  1. パソコンで Chrome 116 以降を開きます。
  2. chrome://flags/#one-time-permission を開き、[有効にする] を選択します。Chrome を再起動します。この手順では、Chrome ブラウザでまだ展開されていない場合に、1 回だけのアクセス許可を強制的に有効化します。
  3. https://permission.site/one-time を開きます。
  4. [Geolocation] ボタンをクリックします。
  5. 新しい 1 回だけのアクセス許可リクエストを確認します。
  6. [今回のみ許可] を選択します。
  7. [サイトのコントロール] を開きます。1 回だけのアクセス許可を管理できることを確認します。
  8. https://permission.site/one-time のタブを閉じます。そのオリジンの他のタブが開いていないことを確認します。
  9. 新しいタブで https://permission.site/one-time を開きます。
  10. [サイトのコントロール] を開きます。[サイトの設定] に移動します。
  11. 位置情報の権限が初期状態の [確認する(デフォルト)] に戻っていることを確認します。

まとめとフィードバック

1 回限りの権限により、ユーザーはより多くの選択肢を利用できるようになります。また、Chrome の新しい権限 UI により、ブラウザやプラットフォーム間で権限に関するユーザー エクスペリエンスの一貫性が向上します。

1 回限りの権限で問題が発生した場合は、権限リクエストに関する新しい crbug の問題を報告してください

謝辞

この記事のレビューにご協力いただいた Rachel Andrew、Serena Chen、Balazs Engedy、Marian Harbach、Florian Jacky、Thomas Steiner に感謝いたします。