| Index: chrome/browser/media/chrome_midi_permission_context.cc
|
| diff --git a/chrome/browser/media/chrome_midi_permission_context.cc b/chrome/browser/media/chrome_midi_permission_context.cc
|
| index c23340086e9ea1e06f6963fafe3184972dcd08df..08e2e5b603cd4fbc800bbf7fc5104eaefcfd7ab6 100644
|
| --- a/chrome/browser/media/chrome_midi_permission_context.cc
|
| +++ b/chrome/browser/media/chrome_midi_permission_context.cc
|
| @@ -25,7 +25,7 @@ ChromeMIDIPermissionContext::~ChromeMIDIPermissionContext() {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| }
|
|
|
| -void ChromeMIDIPermissionContext::Shutdown() {
|
| +void ChromeMIDIPermissionContext::ShutdownOnUIThread() {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| permission_queue_controller_.reset();
|
| shutting_down_ = true;
|
| @@ -34,8 +34,9 @@ void ChromeMIDIPermissionContext::Shutdown() {
|
| void ChromeMIDIPermissionContext::RequestMIDISysExPermission(
|
| int render_process_id,
|
| int render_view_id,
|
| + int bridge_id,
|
| const GURL& requesting_frame,
|
| - const content::BrowserContext::MIDISysExPermissionCallback& callback) {
|
| + const content::MIDISysExPermissionCallback& callback) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| DCHECK(!shutting_down_);
|
|
|
| @@ -49,7 +50,7 @@ void ChromeMIDIPermissionContext::RequestMIDISysExPermission(
|
| if (!web_contents)
|
| return;
|
|
|
| - const PermissionRequestID id(render_process_id, render_view_id, 0);
|
| + const PermissionRequestID id(render_process_id, render_view_id, bridge_id);
|
|
|
| GURL embedder = web_contents->GetURL();
|
| if (!requesting_frame.is_valid() || !embedder.is_valid()) {
|
| @@ -63,11 +64,20 @@ void ChromeMIDIPermissionContext::RequestMIDISysExPermission(
|
| DecidePermission(id, requesting_frame, embedder, callback);
|
| }
|
|
|
| +void ChromeMIDIPermissionContext::CancelMIDISysExPermissionRequest(
|
| + int render_process_id,
|
| + int render_view_id,
|
| + int bridge_id,
|
| + const GURL& requesting_frame) {
|
| + CancelPendingInfoBarRequest(PermissionRequestID(
|
| + render_process_id, render_view_id, bridge_id));
|
| +}
|
| +
|
| void ChromeMIDIPermissionContext::DecidePermission(
|
| const PermissionRequestID& id,
|
| const GURL& requesting_frame,
|
| const GURL& embedder,
|
| - const content::BrowserContext::MIDISysExPermissionCallback& callback) {
|
| + const content::MIDISysExPermissionCallback& callback) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
|
|
| ContentSetting content_setting =
|
| @@ -95,7 +105,7 @@ void ChromeMIDIPermissionContext::PermissionDecided(
|
| const PermissionRequestID& id,
|
| const GURL& requesting_frame,
|
| const GURL& embedder,
|
| - const content::BrowserContext::MIDISysExPermissionCallback& callback,
|
| + const content::MIDISysExPermissionCallback& callback,
|
| bool allowed) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| NotifyPermissionSet(id, requesting_frame, callback, allowed);
|
| @@ -104,7 +114,7 @@ void ChromeMIDIPermissionContext::PermissionDecided(
|
| void ChromeMIDIPermissionContext::NotifyPermissionSet(
|
| const PermissionRequestID& id,
|
| const GURL& requesting_frame,
|
| - const content::BrowserContext::MIDISysExPermissionCallback& callback,
|
| + const content::MIDISysExPermissionCallback& callback,
|
| bool allowed) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
|
|
| @@ -129,3 +139,19 @@ PermissionQueueController* ChromeMIDIPermissionContext::GetQueueController() {
|
| }
|
| return permission_queue_controller_.get();
|
| }
|
| +
|
| +void ChromeMIDIPermissionContext::CancelPendingInfoBarRequest(
|
| + const PermissionRequestID& id) {
|
| + if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) {
|
| + content::BrowserThread::PostTask(
|
| + content::BrowserThread::UI, FROM_HERE,
|
| + base::Bind(
|
| + &ChromeMIDIPermissionContext::CancelPendingInfoBarRequest,
|
| + this, id));
|
| + return;
|
| + }
|
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| + if (shutting_down_)
|
| + return;
|
| + GetQueueController()->CancelInfoBarRequest(id);
|
| +}
|
|
|