| 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
|
|
|