Index: content/browser/renderer_host/media/midi_dispatcher_host.cc |
diff --git a/content/browser/renderer_host/media/midi_dispatcher_host.cc b/content/browser/renderer_host/media/midi_dispatcher_host.cc |
index 53f5a7693136fb6dc116524d005ad70a1b834593..1f0bfc60eecc4134ca9cfc9b06633c0630da6758 100644 |
--- a/content/browser/renderer_host/media/midi_dispatcher_host.cc |
+++ b/content/browser/renderer_host/media/midi_dispatcher_host.cc |
@@ -14,10 +14,11 @@ |
namespace content { |
-MIDIDispatcherHost::MIDIDispatcherHost(int render_process_id, |
- BrowserContext* browser_context) |
+MIDIDispatcherHost::MIDIDispatcherHost( |
+ int render_process_id, |
+ MidiPermissionContext* midi_permission_context_) |
: render_process_id_(render_process_id), |
- browser_context_(browser_context) { |
+ midi_permission_context_(midi_permission_context_) { |
} |
MIDIDispatcherHost::~MIDIDispatcherHost() { |
@@ -29,6 +30,8 @@ bool MIDIDispatcherHost::OnMessageReceived(const IPC::Message& message, |
IPC_BEGIN_MESSAGE_MAP_EX(MIDIDispatcherHost, message, *message_was_ok) |
IPC_MESSAGE_HANDLER(MIDIHostMsg_RequestSysExPermission, |
OnRequestSysExPermission) |
+ IPC_MESSAGE_HANDLER(MIDIHostMsg_CancelSysExPermissionRequest, |
+ OnCancelSysExPermissionRequest) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP_EX() |
return handled; |
@@ -41,26 +44,51 @@ void MIDIDispatcherHost::OverrideThreadForMessage( |
} |
void MIDIDispatcherHost::OnRequestSysExPermission(int render_view_id, |
- int client_id, |
+ int bridge_id, |
const GURL& origin) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- browser_context_->RequestMIDISysExPermission( |
- render_process_id_, |
- render_view_id, |
- origin, |
- base::Bind(&MIDIDispatcherHost::WasSysExPermissionGranted, |
- base::Unretained(this), |
- render_view_id, |
- client_id)); |
+ if (midi_permission_context_.get()) { |
+ midi_permission_context_->RequestMIDISysExPermission( |
+ render_process_id_, |
+ render_view_id, |
+ bridge_id, |
+ origin, |
+ base::Bind(&MIDIDispatcherHost::WasSysExPermissionGranted, |
+ base::Unretained(this), |
+ render_view_id, |
+ bridge_id)); |
+ } else { |
+ BrowserThread::PostTask( |
+ BrowserThread::UI, |
+ FROM_HERE, |
+ base::Bind(&MIDIDispatcherHost::WasSysExPermissionGranted, |
+ base::Unretained(this), |
+ render_view_id, |
+ bridge_id, |
+ true)); |
+ } |
+} |
+ |
+void MIDIDispatcherHost::OnCancelSysExPermissionRequest( |
+ int render_view_id, |
+ int bridge_id, |
+ const GURL& requesting_frame) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ DVLOG(1) << __FUNCTION__ << " " << render_process_id_ << ":" << render_view_id |
+ << ":" << bridge_id; |
+ if (midi_permission_context_.get()) { |
+ midi_permission_context_->CancelMIDISysExPermissionRequest( |
+ render_process_id_, render_view_id, bridge_id, requesting_frame); |
+ } |
} |
void MIDIDispatcherHost::WasSysExPermissionGranted(int render_view_id, |
- int client_id, |
+ int bridge_id, |
bool success) { |
ChildProcessSecurityPolicyImpl::GetInstance()->GrantSendMIDISysExMessage( |
render_process_id_); |
- Send(new MIDIMsg_SysExPermissionApproved(render_view_id, client_id, success)); |
+ Send(new MIDIMsg_SysExPermissionApproved(render_view_id, bridge_id, success)); |
} |
} // namespace content |