Merge M43: Web MIDI: disable unsupported devices on Windows

BUG=499279
R=yukawa@chromium.org

Review URL: https://codereview.chromium.org/1178793007.

Cr-Commit-Position: refs/heads/master@{#334994}
(cherry picked from commit 133b995ac61440832fe1b91d2180eb0da182aced)

Review URL: https://codereview.chromium.org/1182913007.

Cr-Commit-Position: refs/branch-heads/2357@{#476}
Cr-Branched-From: 59d4494849b405682265ed5d3f5164573b9a939b-refs/heads/master@{#323860}
diff --git a/media/midi/midi_manager_win.cc b/media/midi/midi_manager_win.cc
index 1d140c3..e7cb8f3 100644
--- a/media/midi/midi_manager_win.cc
+++ b/media/midi/midi_manager_win.cc
@@ -305,6 +305,12 @@
   }
 }
 
+bool IsUnsupportedDevice(const MidiDeviceInfo& info) {
+  return info.manufacturer_id == MM_MICROSOFT &&
+         (info.product_id == MM_MSFT_WDMAUDIO_MIDIOUT ||
+          info.product_id == MM_MSFT_GENERIC_MIDISYNTH);
+}
+
 using PortNumberCache = base::hash_map<
     MidiDeviceInfo,
     std::priority_queue<uint32, std::vector<uint32>, std::greater<uint32>>,
@@ -828,6 +834,8 @@
         make_scoped_refptr(new MidiOutputDeviceState(MidiDeviceInfo(caps)));
     state->midi_handle = midi_out_handle;
     const auto& state_device_info = state->device_info;
+    if (IsUnsupportedDevice(state_device_info))
+      return;
     bool add_new_port = false;
     uint32 port_number = 0;
     {