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

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

Issue 755673002: Update MidiDispatcher to use Mojo Permission Service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
Index: content/renderer/media/midi_dispatcher.cc
diff --git a/content/renderer/media/midi_dispatcher.cc b/content/renderer/media/midi_dispatcher.cc
index b281389ee5427719f0a7ce08b9119db570efdd24..c833d9bbf51f0a9ab73bf090b343d21d545600a1 100644
--- a/content/renderer/media/midi_dispatcher.cc
+++ b/content/renderer/media/midi_dispatcher.cc
@@ -5,12 +5,11 @@
#include "content/renderer/media/midi_dispatcher.h"
#include "base/bind.h"
-#include "base/message_loop/message_loop.h"
-#include "content/common/media/midi_messages.h"
+#include "content/public/common/service_registry.h"
+#include "content/public/renderer/render_frame.h"
#include "third_party/WebKit/public/platform/WebString.h"
#include "third_party/WebKit/public/web/WebMIDIPermissionRequest.h"
#include "third_party/WebKit/public/web/WebSecurityOrigin.h"
-#include "third_party/WebKit/public/web/WebUserGestureIndicator.h"
using blink::WebMIDIPermissionRequest;
using blink::WebSecurityOrigin;
@@ -23,23 +22,22 @@ MidiDispatcher::MidiDispatcher(RenderFrame* render_frame)
MidiDispatcher::~MidiDispatcher() {}
-bool MidiDispatcher::OnMessageReceived(const IPC::Message& message) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(MidiDispatcher, message)
- IPC_MESSAGE_HANDLER(MidiMsg_SysExPermissionApproved,
- OnSysExPermissionApproved)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
void MidiDispatcher::requestSysexPermission(
const WebMIDIPermissionRequest& request) {
- int bridge_id = requests_.Add(new WebMIDIPermissionRequest(request));
- WebSecurityOrigin security_origin = request.securityOrigin();
- GURL url(security_origin.toString());
- Send(new MidiHostMsg_RequestSysExPermission(routing_id(), bridge_id, url,
- blink::WebUserGestureIndicator::isProcessingUserGesture()));
+ if (!permission_service_.get()) {
+ render_frame()->GetServiceRegistry()->ConnectToRemoteService(
+ &permission_service_);
+ }
+
Tom Sepez 2014/11/24 18:10:02 Can the connect fail? Do we need to handle that ca
mlamouri (slow - plz ping) 2014/11/24 18:20:17 My understanding is that permission_service_ can't
Tom Sepez 2014/11/24 18:27:09 OK, can we add a debug assert?
mlamouri (slow - plz ping) 2014/11/24 18:29:40 qsr@, do you have some insights about this? It see
nasko 2014/11/25 00:30:59 I'm biased towards adding a (D)CHECK if we never e
qsr 2014/11/25 09:38:00 The DCHECK is not useful. The service cannot be nu
mlamouri (slow - plz ping) 2014/11/25 09:48:21 Thanks for the quick reply Benjamin! :)
+ int permission_request_id =
+ requests_.Add(new WebMIDIPermissionRequest(request));
+
+ permission_service_->RequestPermission(
+ PERMISSION_NAME_MIDI_SYSEX,
+ request.securityOrigin().toString().utf8(),
+ base::Bind(&MidiDispatcher::OnSysExPermissionSet,
+ base::Unretained(this),
+ permission_request_id));
}
void MidiDispatcher::cancelSysexPermissionRequest(
@@ -53,14 +51,14 @@ void MidiDispatcher::cancelSysexPermissionRequest(
}
}
-void MidiDispatcher::OnSysExPermissionApproved(int bridge_id,
- bool is_allowed) {
+void MidiDispatcher::OnSysExPermissionSet(int request_id,
+ PermissionStatus status) {
// |request| can be NULL when the request is canceled.
- WebMIDIPermissionRequest* request = requests_.Lookup(bridge_id);
+ WebMIDIPermissionRequest* request = requests_.Lookup(request_id);
if (!request)
return;
- request->setIsAllowed(is_allowed);
- requests_.Remove(bridge_id);
+ request->setIsAllowed(status == PERMISSION_STATUS_GRANTED);
+ requests_.Remove(request_id);
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698