summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortoyoshim <toyoshim@chromium.org>2016-03-23 22:45:34 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-24 05:46:58 +0000
commit8bb9f8d56d32c48441d93125d681a7389c96e8fd (patch)
tree41d4c04cddb8a408ff45e94b0041fabf5a559c52
parent4094236725f3755f981c4ed2355e4cf71a0a80de (diff)
downloadchromium_src-8bb9f8d56d32c48441d93125d681a7389c96e8fd.zip
chromium_src-8bb9f8d56d32c48441d93125d681a7389c96e8fd.tar.gz
chromium_src-8bb9f8d56d32c48441d93125d681a7389c96e8fd.tar.bz2
Web MIDI: remove a wrong TODO, and add right explanation.
Remove a TODO to rewrite MidiMessageFilter as a RenderFrameObserver. In terms of life cycle management, RenderFrameObserver is better to use, but we intentionally use MessageFilter for performance reasons. We will eventually use Mojo to simplify and remove such confusion. BUG=425389 Review URL: https://codereview.chromium.org/1823983003 Cr-Commit-Position: refs/heads/master@{#383035}
-rw-r--r--content/renderer/media/midi_message_filter.cc1
-rw-r--r--content/renderer/media/midi_message_filter.h8
2 files changed, 7 insertions, 2 deletions
diff --git a/content/renderer/media/midi_message_filter.cc b/content/renderer/media/midi_message_filter.cc
index 7bc0a54..e92d0fc 100644
--- a/content/renderer/media/midi_message_filter.cc
+++ b/content/renderer/media/midi_message_filter.cc
@@ -23,7 +23,6 @@ static const size_t kMaxUnacknowledgedBytesSent = 10 * 1024 * 1024; // 10 MB.
namespace content {
-// TODO(crbug.com/425389): Rewrite this class as a RenderFrameObserver.
MidiMessageFilter::MidiMessageFilter(
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner)
: sender_(nullptr),
diff --git a/content/renderer/media/midi_message_filter.h b/content/renderer/media/midi_message_filter.h
index ce10663..e60bcef 100644
--- a/content/renderer/media/midi_message_filter.h
+++ b/content/renderer/media/midi_message_filter.h
@@ -25,7 +25,13 @@ class SingleThreadTaskRunner;
namespace content {
-// MessageFilter that handles MIDI messages.
+// MessageFilter that handles MIDI messages. Created on render thread, and
+// host multiple clients running on multiple frames on IO thread.
+// Web MIDI intentionally uses MessageFilter (in a renderer process) and
+// BrowserMessageFilter (in the browser process) to intercept MIDI messages and
+// process them on IO thread in the browser process since these messages are
+// time critical. Non-critical operations like permission management are
+// handled in MidiDispatcher.
class CONTENT_EXPORT MidiMessageFilter : public IPC::MessageFilter {
public:
explicit MidiMessageFilter(