Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1834)

Unified Diff: content/renderer/media/midi_dispatcher.cc

Issue 38043004: Cancel MIDI permission request infobar on MIDIAccess stop. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Delay "requests_.Remove(it.GetCurrentKey());" until we're done using |it|. Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/public/test/test_browser_context.cc ('k') | content/shell/browser/shell_browser_context.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/midi_dispatcher.cc
diff --git a/content/renderer/media/midi_dispatcher.cc b/content/renderer/media/midi_dispatcher.cc
index edd57c23ee132173671afcf479a617ff55b99c96..b9aae33bec216dda6e6427cfc969b103771616ea 100644
--- a/content/renderer/media/midi_dispatcher.cc
+++ b/content/renderer/media/midi_dispatcher.cc
@@ -34,11 +34,11 @@ bool MIDIDispatcher::OnMessageReceived(const IPC::Message& message) {
void MIDIDispatcher::requestSysExPermission(
const WebMIDIPermissionRequest& request) {
- int client_id = requests_.Add(new WebMIDIPermissionRequest(request));
+ int bridge_id = requests_.Add(new WebMIDIPermissionRequest(request));
WebSecurityOrigin security_origin = request.securityOrigin();
std::string origin = security_origin.toString().utf8();
GURL url(origin);
- Send(new MIDIHostMsg_RequestSysExPermission(routing_id(), client_id, url));
+ Send(new MIDIHostMsg_RequestSysExPermission(routing_id(), bridge_id, url));
}
void MIDIDispatcher::cancelSysExPermissionRequest(
@@ -47,19 +47,23 @@ void MIDIDispatcher::cancelSysExPermissionRequest(
!it.IsAtEnd();
it.Advance()) {
WebMIDIPermissionRequest* value = it.GetCurrentValue();
- if (!value->equals(request))
- continue;
- requests_.Remove(it.GetCurrentKey());
+ if (value->equals(request)) {
+ string16 origin = request.securityOrigin().toString();
+ Send(new MIDIHostMsg_CancelSysExPermissionRequest(
+ routing_id(), it.GetCurrentKey(), GURL(origin)));
+ requests_.Remove(it.GetCurrentKey());
+ break;
+ }
}
}
-void MIDIDispatcher::OnSysExPermissionApproved(int client_id, bool is_allowed) {
+void MIDIDispatcher::OnSysExPermissionApproved(int bridge_id, bool is_allowed) {
// |request| can be NULL when the request is canceled.
- WebMIDIPermissionRequest* request = requests_.Lookup(client_id);
+ WebMIDIPermissionRequest* request = requests_.Lookup(bridge_id);
if (!request)
return;
request->setIsAllowed(is_allowed);
- requests_.Remove(client_id);
+ requests_.Remove(bridge_id);
}
} // namespace content
« no previous file with comments | « content/public/test/test_browser_context.cc ('k') | content/shell/browser/shell_browser_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698