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

Unified Diff: content/browser/media/midi_host.cc

Issue 1315793008: Web MIDI: introduce MidiManager::Shutdown to shutdown gracefully (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: build fix (mac typo) Created 5 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
Index: content/browser/media/midi_host.cc
diff --git a/content/browser/media/midi_host.cc b/content/browser/media/midi_host.cc
index c26a719471887ba6e885690627c00634714fb6c2..1823431f35c54bf322c651a0506d760d8413c0bb 100644
--- a/content/browser/media/midi_host.cc
+++ b/content/browser/media/midi_host.cc
@@ -56,12 +56,12 @@ MidiHost::MidiHost(int renderer_process_id,
sent_bytes_in_flight_(0),
bytes_sent_since_last_acknowledgement_(0),
output_port_count_(0) {
- CHECK(midi_manager_);
+ DCHECK(midi_manager_);
}
MidiHost::~MidiHost() {
// Close an open session, or abort opening a session.
- if (is_session_requested_)
+ if (is_session_requested_ && midi_manager_)
midi_manager_->EndSession(this);
}
@@ -84,7 +84,8 @@ bool MidiHost::OnMessageReceived(const IPC::Message& message) {
void MidiHost::OnStartSession() {
is_session_requested_ = true;
- midi_manager_->StartSession(this);
+ if (midi_manager_)
+ midi_manager_->StartSession(this);
}
void MidiHost::OnSendData(uint32 port,
@@ -122,12 +123,14 @@ void MidiHost::OnSendData(uint32 port,
return;
sent_bytes_in_flight_ += data.size();
}
- midi_manager_->DispatchSendMidiData(this, port, data, timestamp);
+ if (midi_manager_)
+ midi_manager_->DispatchSendMidiData(this, port, data, timestamp);
}
void MidiHost::OnEndSession() {
is_session_requested_ = false;
- midi_manager_->EndSession(this);
+ if (midi_manager_)
+ midi_manager_->EndSession(this);
}
void MidiHost::CompleteStartSession(media::midi::Result result) {
@@ -216,6 +219,10 @@ void MidiHost::AccumulateMidiBytesSent(size_t n) {
}
}
+void MidiHost::Detached() {
+ midi_manager_ = nullptr;
+}
+
// static
bool MidiHost::IsValidWebMIDIData(const std::vector<uint8>& data) {
bool in_sysex = false;

Powered by Google App Engine
This is Rietveld 408576698