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

Issue 2053013002: Weave Packet Receiver (Closed)

Created:
4 years, 6 months ago by jingxuy
Modified:
4 years, 5 months ago
CC:
chromium-reviews
Base URL:
https://chromium.googlesource.com/chromium/src.git@proximity_auth_weave_migration
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Weave Packet Generator This CL adds a packet receiver that respects the uWeave.BLE protocol. The packet receiver expects this chain of events: 1 control_request/response -> 0+ data packets -> 0 or 1 control_close. The packet receiver keeps track of the receiving state and will jump to ERROR state when anything unexpected happens. (receiving packets out of order, invalid packet content, etc) The expected user of packet receiver should feed a packet into receiver, check the state, and take appropriate action. If actions are not taken in the appropriate state, the receiver will crash. Data message should be retrieved promptly when the state reaches DATA_READY or else the data will be lost when the next packet arrives. Design Doc for ProximityAuth uWeave Migration: https://docs.google.com/a/google.com/document/d/1HJ1fipxsNQwIxmKs-5_6TjroCAcs6qRhAYvOnIr6mQw/edit?usp=sharing BUG=617238 Committed: https://crrev.com/688334563b18b7d80b3207da6c0d30d17323b351 Cr-Commit-Position: refs/heads/master@{#402884}

Patch Set 1 : code complete built #

Total comments: 38

Patch Set 2 : fixed state transition obvious bugs #

Patch Set 3 : fixed typo in comment #

Total comments: 17

Patch Set 4 : fixed a slight typo in the .h file #

Total comments: 10

Patch Set 5 : finished minor todo and addressed some comments #

Patch Set 6 : disallowed multiple request/response, added some error log #

Patch Set 7 : added state transtion out of connecting #

Total comments: 24

Patch Set 8 : Don't review yet! fix state problems and added more error assistant and added unittest #

Patch Set 9 : Added unit test and fix some state machine problems #

Patch Set 10 : wrong first bit is now packet_out_of_sequence error instead of unknown, switch log from base to PA #

Total comments: 2

Patch Set 11 : now accepts connection close without a reason #

Patch Set 12 : fixed typo build problem #

Total comments: 64

Patch Set 13 : commented test and h file. Fixed memory leak in test. style modification in cc file #

Total comments: 33

Patch Set 14 : divided tests into little chunks #

Total comments: 6

Patch Set 15 : added receiver error code and some test along the waywq #

Total comments: 21

Patch Set 16 : addressed comments in cc file #

Patch Set 17 : ifdef guard around htons includeswq #

Patch Set 18 : BUILD.gn merge #

Patch Set 19 : fix macro problem and change functions to virtual #

Patch Set 20 : fixed narrowing conversion from uint32_t to uint8-t #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1706 lines, -0 lines) Patch
M components/components_tests.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +1 line, -0 lines 0 comments Download
M components/proximity_auth.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +3 lines, -0 lines 0 comments Download
M components/proximity_auth/ble/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +3 lines, -0 lines 0 comments Download
A components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +222 lines, -0 lines 0 comments Download
A components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +451 lines, -0 lines 0 comments Download
A components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1026 lines, -0 lines 0 comments Download

Messages

Total messages: 58 (19 generated)
Tim Song
https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode7 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:7: #include "base/logging.h" Please use "components/proximity_auth/logging.h" https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode66 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:66: return std::string(data_message_.begin(), ...
4 years, 6 months ago (2016-06-09 22:08:35 UTC) #8
jingxuy
https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode7 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:7: #include "base/logging.h" On 2016/06/09 22:08:34, Tim Song wrote: > ...
4 years, 6 months ago (2016-06-09 23:29:04 UTC) #9
Kyle Horimoto
https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.h File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.h (right): https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.h#newcode38 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.h:38: EXCHANGING_CONTROLS = 0x00, On 2016/06/09 23:29:04, jingxuy wrote: > ...
4 years, 6 months ago (2016-06-09 23:59:46 UTC) #10
Kyle Horimoto
Also, same thing as your other CL: please improve the CL description.
4 years, 6 months ago (2016-06-10 00:02:01 UTC) #11
Tim Song
https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode7 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:7: #include "base/logging.h" On 2016/06/09 23:29:03, jingxuy wrote: > On ...
4 years, 6 months ago (2016-06-10 21:25:21 UTC) #12
jingxuy
https://codereview.chromium.org/2053013002/diff/140001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/140001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode12 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:12: namespace { On 2016/06/09 23:59:46, Kyle Horimoto wrote: > ...
4 years, 6 months ago (2016-06-10 23:11:12 UTC) #13
jingxuy
https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode7 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:7: #include "base/logging.h" On 2016/06/10 21:25:21, Tim Song wrote: > ...
4 years, 6 months ago (2016-06-11 00:10:47 UTC) #14
Tim Song
https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode7 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:7: #include "base/logging.h" On 2016/06/11 00:10:46, jingxuy wrote: > On ...
4 years, 6 months ago (2016-06-11 00:39:46 UTC) #16
sacomoto
First pass. https://codereview.chromium.org/2053013002/diff/220001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/220001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode171 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:171: uint16_t max_version = GetShortField(packet, 3); On 2016/06/11 ...
4 years, 6 months ago (2016-06-13 17:16:40 UTC) #17
Kyle Horimoto
Can you please add a unit test? Also, can you please improve the CL title/description? ...
4 years, 6 months ago (2016-06-13 18:12:49 UTC) #18
jingxuy
https://codereview.chromium.org/2053013002/diff/220001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/220001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode102 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:102: void BluetoothLowEnergyWeavePacketReceiver::ReceiveControlPacket( On 2016/06/11 00:39:46, Tim Song wrote: > ...
4 years, 6 months ago (2016-06-16 08:42:28 UTC) #20
sacomoto
https://codereview.chromium.org/2053013002/diff/220001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/220001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode208 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:208: reason_for_close_ = static_cast<ReasonForClose>(GetShortField(packet, 1)); On 2016/06/16 08:42:28, jingxuy wrote: ...
4 years, 6 months ago (2016-06-17 15:31:08 UTC) #21
jingxuy
https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/100001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode7 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:7: #include "base/logging.h" On 2016/06/11 00:39:45, Tim Song wrote: > ...
4 years, 6 months ago (2016-06-17 18:59:52 UTC) #22
Kyle Horimoto
Please update your tests with better documentation. It's too hard for me to review your ...
4 years, 6 months ago (2016-06-20 23:25:40 UTC) #23
jingxuy
https://codereview.chromium.org/2053013002/diff/320001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/320001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode18 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:18: const uint16_t kMinPacketSize = 20; On 2016/06/20 23:25:40, Kyle ...
4 years, 6 months ago (2016-06-21 01:19:15 UTC) #24
Kyle Horimoto
I will finish reviewing the tests tomorrow. https://codereview.chromium.org/2053013002/diff/320001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/320001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode18 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:18: const uint16_t ...
4 years, 6 months ago (2016-06-21 02:10:27 UTC) #25
jingxuy
https://codereview.chromium.org/2053013002/diff/320001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/320001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode174 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:174: bool expect_first_packet) { On 2016/06/21 02:10:26, Kyle Horimoto wrote: ...
4 years, 6 months ago (2016-06-21 06:19:26 UTC) #26
Kyle Horimoto
https://codereview.chromium.org/2053013002/diff/320001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/320001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode18 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:18: const uint16_t kMinPacketSize = 20; On 2016/06/21 02:10:26, Kyle ...
4 years, 6 months ago (2016-06-21 18:13:39 UTC) #27
jingxuy
https://codereview.chromium.org/2053013002/diff/320001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/320001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode18 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:18: const uint16_t kMinPacketSize = 20; On 2016/06/21 18:13:37, Kyle ...
4 years, 6 months ago (2016-06-22 01:42:24 UTC) #28
Kyle Horimoto
LGTM after you address my comment. https://codereview.chromium.org/2053013002/diff/340001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver_unittest.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver_unittest.cc (right): https://codereview.chromium.org/2053013002/diff/340001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver_unittest.cc#newcode506 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver_unittest.cc:506: EXPECT_EQ(ReasonForClose::UNKNOWN_ERROR, receiver->GetReasonToClose()); On ...
4 years, 6 months ago (2016-06-22 01:56:20 UTC) #29
jingxuy
https://codereview.chromium.org/2053013002/diff/340001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver_unittest.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver_unittest.cc (right): https://codereview.chromium.org/2053013002/diff/340001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver_unittest.cc#newcode506 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver_unittest.cc:506: EXPECT_EQ(ReasonForClose::UNKNOWN_ERROR, receiver->GetReasonToClose()); On 2016/06/22 01:56:19, Kyle Horimoto wrote: > ...
4 years, 6 months ago (2016-06-22 22:37:44 UTC) #30
Kyle Horimoto
https://codereview.chromium.org/2053013002/diff/360001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/360001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode107 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:107: if (state_ == State::ERROR) { On 2016/06/22 22:37:43, jingxuy ...
4 years, 6 months ago (2016-06-22 22:44:06 UTC) #31
jingxuy
https://codereview.chromium.org/2053013002/diff/360001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/360001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode107 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:107: if (state_ == State::ERROR) { On 2016/06/22 22:44:06, Kyle ...
4 years, 6 months ago (2016-06-22 22:55:53 UTC) #32
Kyle Horimoto
https://codereview.chromium.org/2053013002/diff/360001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/360001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode107 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:107: if (state_ == State::ERROR) { On 2016/06/22 22:55:53, jingxuy ...
4 years, 6 months ago (2016-06-22 22:59:10 UTC) #33
Kyle Horimoto
Still LGTM. https://codereview.chromium.org/2053013002/diff/360001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/360001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode107 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:107: if (state_ == State::ERROR) { On 2016/06/22 ...
4 years, 6 months ago (2016-06-22 23:02:14 UTC) #34
Tim Song
https://codereview.chromium.org/2053013002/diff/380001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/380001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode95 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:95: BluetoothLowEnergyWeavePacketReceiver::GetReceiverError() { DCHECK for State::ERROR? https://codereview.chromium.org/2053013002/diff/380001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode106 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:106: } else ...
4 years, 6 months ago (2016-06-23 01:19:47 UTC) #35
sacomoto
LGTM after addressing Tim's comments. Thanks, Jing! https://codereview.chromium.org/2053013002/diff/380001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/380001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode95 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:95: BluetoothLowEnergyWeavePacketReceiver::GetReceiverError() { ...
4 years, 6 months ago (2016-06-23 16:09:19 UTC) #36
jingxuy
https://codereview.chromium.org/2053013002/diff/380001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc File components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc (right): https://codereview.chromium.org/2053013002/diff/380001/components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc#newcode95 components/proximity_auth/ble/bluetooth_low_energy_weave_packet_receiver.cc:95: BluetoothLowEnergyWeavePacketReceiver::GetReceiverError() { On 2016/06/23 16:09:19, sacomoto wrote: > On ...
4 years, 6 months ago (2016-06-23 21:16:14 UTC) #37
Tim Song
lgtm
4 years, 6 months ago (2016-06-23 21:40:45 UTC) #38
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/2053013002/440001
4 years, 6 months ago (2016-06-24 22:39:28 UTC) #41
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/234334)
4 years, 6 months ago (2016-06-24 23:11:45 UTC) #43
Kyle Horimoto
Before submitting this CL, please move the constants shared between both this class and the ...
4 years, 5 months ago (2016-06-27 16:52:41 UTC) #44
jingxuy
On 2016/06/27 16:52:41, Kyle Horimoto wrote: > Before submitting this CL, please move the constants ...
4 years, 5 months ago (2016-06-28 23:54:10 UTC) #45
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/2053013002/460001
4 years, 5 months ago (2016-06-28 23:56:34 UTC) #48
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/247236) win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, ...
4 years, 5 months ago (2016-06-29 00:41:41 UTC) #50
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/2053013002/480001
4 years, 5 months ago (2016-06-29 17:51:09 UTC) #53
commit-bot: I haz the power
Committed patchset #20 (id:480001)
4 years, 5 months ago (2016-06-29 18:58:48 UTC) #55
commit-bot: I haz the power
CQ bit was unchecked.
4 years, 5 months ago (2016-06-29 18:58:57 UTC) #56
commit-bot: I haz the power
4 years, 5 months ago (2016-06-29 19:01:19 UTC) #58
Message was sent while issue was closed.
Patchset 20 (id:??) landed as
https://crrev.com/688334563b18b7d80b3207da6c0d30d17323b351
Cr-Commit-Position: refs/heads/master@{#402884}

Powered by Google App Engine
This is Rietveld 408576698