Chromium Code Reviews| Index: blimp/common/logging.cc |
| diff --git a/blimp/common/logging.cc b/blimp/common/logging.cc |
| index 6f5587b20843d6e1e5ebb98c77a8b7b944421679..d83135d3b972c1d02f22848c9a1fbc73faa50dca 100644 |
| --- a/blimp/common/logging.cc |
| +++ b/blimp/common/logging.cc |
| @@ -12,13 +12,18 @@ |
| #include "base/json/string_escape.h" |
| #include "base/lazy_instance.h" |
| #include "base/memory/ptr_util.h" |
| +#include "base/strings/string_number_conversions.h" |
| #include "base/strings/string_util.h" |
| #include "base/strings/stringprintf.h" |
| +#include "blimp/common/create_blimp_message.h" |
| #include "blimp/common/proto/blimp_message.pb.h" |
| namespace blimp { |
| namespace { |
| +// TODO(kmarshall): Remove "default" cases from switch statements in favor of |
| +// explicit coverage of all enum values, including TYPE_NOT_SET. |
|
Wez
2016/05/25 02:47:44
nit: Let's file a bug for that cleanup, rather tha
Kevin M
2016/05/25 20:23:38
Done, crbug.com/614748
|
| + |
| static base::LazyInstance<BlimpMessageLogger> g_logger = |
| LAZY_INSTANCE_INITIALIZER; |
| @@ -248,6 +253,28 @@ class TabControlLogExtractor : public LogExtractor { |
| } |
| }; |
| +// Logs fields from BLOB_CHANNEL messages. |
| +class BlobChannelLogExtractor : public LogExtractor { |
| + void ExtractFields(const BlimpMessage& message, |
| + LogFields* output) const override { |
| + switch (message.blob_channel().type_case()) { |
| + case BlobChannelMessage::TypeCase::kTransferBlob: |
| + AddField("subtype", "TRANSFER_BLOB", output); |
| + AddField("id", |
| + base::HexEncode( |
| + message.blob_channel().transfer_blob().blob_id().data(), |
| + message.blob_channel().transfer_blob().blob_id().size()), |
| + output); |
| + AddField("payload_size", |
| + message.blob_channel().transfer_blob().payload().size(), |
| + output); |
| + break; |
| + case BlobChannelMessage::TypeCase::TYPE_NOT_SET: // unknown |
| + break; |
| + } |
| + } |
| +}; |
| + |
| // No fields are extracted from |message|. |
| class NullLogExtractor : public LogExtractor { |
| void ExtractFields(const BlimpMessage& message, |
| @@ -271,6 +298,8 @@ BlimpMessageLogger::BlimpMessageLogger() { |
| base::WrapUnique(new SettingsLogExtractor)); |
| AddHandler("TAB_CONTROL", BlimpMessage::TAB_CONTROL, |
| base::WrapUnique(new TabControlLogExtractor)); |
| + AddHandler("BLOB_CHANNEL", BlimpMessage::BLOB_CHANNEL, |
| + base::WrapUnique(new BlobChannelLogExtractor)); |
| } |
| BlimpMessageLogger::~BlimpMessageLogger() {} |