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

Issue 2243183002: Web MIDI backend for Windows 10 (Closed)

Created:
4 years, 4 months ago by Shao-Chuan Lee
Modified:
4 years, 3 months ago
Reviewers:
Takashi Toyoshima
CC:
chromium-reviews, feature-media-reviews_chromium.org, toyoshim+midi_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Web MIDI backend for Windows 10 Using new WinRT APIs introduced since SDK version 10.0.10240.0 to replace legacy WinMM APIs on Windows 10. Note: the new implementation is currently enabled by setting a compile-time flag (midi_winrt); since we distribute same binaries for all Windows versions, we should include both implementations in the build and use a runtime flag for enabling the new one. BUG=512433 R=toyoshim@chromium.org Committed: https://crrev.com/e7237592868a179ba66e6a44c19f89abb9d4483e Cr-Commit-Position: refs/heads/master@{#415566}

Patch Set 1 #

Total comments: 27

Patch Set 2 #

Total comments: 67

Patch Set 3 #

Total comments: 29

Patch Set 4 : rebase, revise thread-safety #

Total comments: 2

Patch Set 5 : rebase, fixup #

Total comments: 27

Patch Set 6 : use base::win::ScopedComPtr, error handling #

Total comments: 58

Patch Set 7 : fixup, remove event handlers properly #

Total comments: 9

Patch Set 8 : StopWatcher(), invalid token value constant, fixup #

Total comments: 5

Patch Set 9 : RemovePortEventHandlers() in StopWatcher(), fixup #

Total comments: 5

Patch Set 10 : fix receiving timestamp #

Patch Set 11 : crbug IDs #

Unified diffs Side-by-side diffs Delta from patch set Stats (+929 lines, -2 lines) Patch
M media/midi/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 3 chunks +18 lines, -2 lines 0 comments Download
A media/midi/midi_manager_winrt.h View 1 2 3 4 5 1 chunk +87 lines, -0 lines 0 comments Download
A media/midi/midi_manager_winrt.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +814 lines, -0 lines 0 comments Download
A media/midi/midi_options.gni View 1 2 1 chunk +10 lines, -0 lines 0 comments Download

Messages

Total messages: 46 (15 generated)
Takashi Toyoshima
Here are my first thoughts. This review does not take a look details inside MidiService, ...
4 years, 4 months ago (2016-08-15 08:46:24 UTC) #1
Shao-Chuan Lee
https://codereview.chromium.org/2243183002/diff/1/build/config/win/midi_winrt.gni File build/config/win/midi_winrt.gni (right): https://codereview.chromium.org/2243183002/diff/1/build/config/win/midi_winrt.gni#newcode6 build/config/win/midi_winrt.gni:6: midi_winrt = false On 2016/08/15 08:46:23, toyoshim wrote: > ...
4 years, 4 months ago (2016-08-16 07:42:25 UTC) #2
Shao-Chuan Lee
https://codereview.chromium.org/2243183002/diff/1/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/1/media/midi/midi_manager_winrt.cc#newcode122 media/midi/midi_manager_winrt.cc:122: std::bind(&CallbackHandler::OnAdded, handler, _1, _2)) On 2016/08/16 07:42:25, Shao-Chuan Lee ...
4 years, 4 months ago (2016-08-16 09:24:35 UTC) #3
Takashi Toyoshima
Great. Overall design looks almost fine. Let's go looking details. Sorry for many comments, but ...
4 years, 4 months ago (2016-08-16 09:30:30 UTC) #4
Shao-Chuan Lee
Major changes in patch 3: - WrlStaticsFactory (was GetStatics): now returns ComPtr objects, class_id moved ...
4 years, 4 months ago (2016-08-18 08:48:57 UTC) #5
Shao-Chuan Lee
https://codereview.chromium.org/2243183002/diff/40001/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/40001/media/midi/midi_manager_winrt.cc#newcode33 media/midi/midi_manager_winrt.cc:33: WRL::ComPtr<InterfaceType> WrlStaticsFactory() { Missing TODO: try replacing WRL::ComPtr with ...
4 years, 4 months ago (2016-08-18 08:57:50 UTC) #6
Takashi Toyoshima
OK, let's discuss thread related topics. I didn't take a look carefully around port managers ...
4 years, 4 months ago (2016-08-18 11:09:22 UTC) #7
Shao-Chuan Lee
Some updates. Changes to MidiScheduler now available for review at https://codereview.chromium.org/2262043002/. https://codereview.chromium.org/2243183002/diff/40001/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): ...
4 years, 4 months ago (2016-08-22 06:53:18 UTC) #8
Shao-Chuan Lee
Thread-safety revised: - Now MidiPortManager is constructed/destructed on the COM thread, and all callbacks from ...
4 years, 4 months ago (2016-08-23 04:29:05 UTC) #9
Shao-Chuan Lee
https://codereview.chromium.org/2243183002/diff/60001/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/60001/media/midi/midi_manager_winrt.cc#newcode120 media/midi/midi_manager_winrt.cc:120: void StartWatcher() { Missing |thread_checker_| check. https://codereview.chromium.org/2243183002/diff/60001/media/midi/midi_manager_winrt.h File media/midi/midi_manager_winrt.h ...
4 years, 4 months ago (2016-08-23 04:33:29 UTC) #10
Takashi Toyoshima
Now design looks almost fine. Let's solve minor nits. https://codereview.chromium.org/2243183002/diff/80001/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/80001/media/midi/midi_manager_winrt.cc#newcode131 media/midi/midi_manager_winrt.cc:131: ...
4 years, 4 months ago (2016-08-23 08:09:38 UTC) #11
Shao-Chuan Lee
Major updates: - MidiScheduler CL merged (https://codereview.chromium.org/2262043002/). - Replaced all Microsoft::WRL::ComPtr with base::win::ScopedComPtr. Note that ...
4 years, 4 months ago (2016-08-24 08:50:32 UTC) #12
Shao-Chuan Lee
https://codereview.chromium.org/2243183002/diff/80001/media/midi/midi_manager_winrt.h File media/midi/midi_manager_winrt.h (right): https://codereview.chromium.org/2243183002/diff/80001/media/midi/midi_manager_winrt.h#newcode13 media/midi/midi_manager_winrt.h:13: #include "media/midi/midi_scheduler.h" On 2016/08/23 08:09:38, toyoshim wrote: > Now ...
4 years, 4 months ago (2016-08-24 09:40:30 UTC) #13
Shao-Chuan Lee
Minor issues, will fix in next patch set. https://codereview.chromium.org/2243183002/diff/100001/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/100001/media/midi/midi_manager_winrt.cc#newcode532 media/midi/midi_manager_winrt.cc:532: handle->add_MessageReceived( ...
4 years, 3 months ago (2016-08-25 02:50:16 UTC) #14
Takashi Toyoshima
First comments for Patch Set 6. This comments do not contain port manager related classes. ...
4 years, 3 months ago (2016-08-25 06:09:45 UTC) #17
Takashi Toyoshima
Remaining other comments for Patch Set 6. There are no big concern in this CL ...
4 years, 3 months ago (2016-08-25 06:43:09 UTC) #18
Shao-Chuan Lee
https://codereview.chromium.org/2243183002/diff/100001/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/100001/media/midi/midi_manager_winrt.cc#newcode15 media/midi/midi_manager_winrt.cc:15: #include "base/containers/hash_tables.h" On 2016/08/25 06:09:45, toyoshim wrote: > Can ...
4 years, 3 months ago (2016-08-25 07:06:42 UTC) #19
Shao-Chuan Lee
https://codereview.chromium.org/2243183002/diff/100001/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/100001/media/midi/midi_manager_winrt.cc#newcode15 media/midi/midi_manager_winrt.cc:15: #include "base/containers/hash_tables.h" On 2016/08/25 07:06:42, Shao-Chuan Lee wrote: > ...
4 years, 3 months ago (2016-08-29 08:27:52 UTC) #21
Takashi Toyoshima
https://codereview.chromium.org/2243183002/diff/100001/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/100001/media/midi/midi_manager_winrt.cc#newcode111 media/midi/midi_manager_winrt.cc:111: HRESULT GetPointerToBufferData(IBuffer* buffer, uint8_t** out) { Aha, I understand ...
4 years, 3 months ago (2016-08-29 09:48:13 UTC) #22
Shao-Chuan Lee
https://codereview.chromium.org/2243183002/diff/140001/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/140001/media/midi/midi_manager_winrt.cc#newcode219 media/midi/midi_manager_winrt.cc:219: RemoveWatcherEventHandlers(); On 2016/08/29 09:48:12, toyoshim wrote: > As I ...
4 years, 3 months ago (2016-08-29 10:45:55 UTC) #23
Takashi Toyoshima
It looks almost gtm. Thank you for making great effort to polish this CL. Your ...
4 years, 3 months ago (2016-08-29 16:20:17 UTC) #24
Shao-Chuan Lee
https://codereview.chromium.org/2243183002/diff/160001/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/160001/media/midi/midi_manager_winrt.cc#newcode42 media/midi/midi_manager_winrt.cc:42: HRESULT hr_; On 2016/08/29 16:20:17, toyoshim wrote: > I ...
4 years, 3 months ago (2016-08-30 02:37:48 UTC) #25
Takashi Toyoshima
Thank you for polishing this up. I may still miss something, but it looks good ...
4 years, 3 months ago (2016-08-30 04:35:18 UTC) #26
Shao-Chuan Lee
https://codereview.chromium.org/2243183002/diff/140002/media/midi/midi_manager_winrt.cc File media/midi/midi_manager_winrt.cc (right): https://codereview.chromium.org/2243183002/diff/140002/media/midi/midi_manager_winrt.cc#newcode596 media/midi/midi_manager_winrt.cc:596: hr = message->get_Timestamp(&time_span); According to docs this is time ...
4 years, 3 months ago (2016-08-30 04:57:59 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2243183002/210001
4 years, 3 months ago (2016-08-31 03:24:04 UTC) #34
commit-bot: I haz the power
Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_android_rel_ng/builds/133509)
4 years, 3 months ago (2016-08-31 03:46:35 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2243183002/210001
4 years, 3 months ago (2016-08-31 04:07:24 UTC) #38
commit-bot: I haz the power
Try jobs failed on following builders: android_arm64_dbg_recipe on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_arm64_dbg_recipe/builds/121294)
4 years, 3 months ago (2016-08-31 04:18:38 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2243183002/210001
4 years, 3 months ago (2016-08-31 04:48:19 UTC) #42
commit-bot: I haz the power
Committed patchset #11 (id:210001)
4 years, 3 months ago (2016-08-31 05:27:25 UTC) #44
commit-bot: I haz the power
4 years, 3 months ago (2016-08-31 05:29:06 UTC) #46
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/e7237592868a179ba66e6a44c19f89abb9d4483e
Cr-Commit-Position: refs/heads/master@{#415566}

Powered by Google App Engine
This is Rietveld 408576698