1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_MIDI_DISPATCHER_HOST_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_MEDIA_MIDI_DISPATCHER_HOST_H_ 7 8 #include "content/public/browser/browser_message_filter.h" 9 10 class GURL; 11 12 namespace content { 13 14 class BrowserContext; 15 16 // MIDIDispatcherHost handles permissions for using system exclusive messages. 17 // It works as BrowserMessageFilter to handle IPC messages between 18 // MIDIDispatcher running as a RenderViewObserver. 19 class MIDIDispatcherHost : public BrowserMessageFilter { 20 public: 21 MIDIDispatcherHost(int render_process_id, BrowserContext* browser_context); 22 23 // BrowserMessageFilter implementation. 24 virtual bool OnMessageReceived(const IPC::Message& message, 25 bool* message_was_ok) OVERRIDE; 26 virtual void OverrideThreadForMessage( 27 const IPC::Message& message, BrowserThread::ID* thread) OVERRIDE; 28 29 protected: 30 virtual ~MIDIDispatcherHost(); 31 32 private: 33 void OnRequestSysExPermission(int render_view_id, 34 int client_id, 35 const GURL& origin); 36 void WasSysExPermissionGranted(int render_view_id, 37 int client_id, 38 bool success); 39 40 int render_process_id_; 41 BrowserContext* browser_context_; 42 43 DISALLOW_COPY_AND_ASSIGN(MIDIDispatcherHost); 44 }; 45 46 } // namespace content 47 48 #endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_MIDI_DISPATCHER_HOST_H_ 49