Chromium Code Reviews| Index: extensions/browser/api/cast_channel/logger.cc |
| diff --git a/extensions/browser/api/cast_channel/logger.cc b/extensions/browser/api/cast_channel/logger.cc |
| index 823b4c320877e84c3141879d8ce81d92e9bb8dd9..b5db982c5fd509be859725b9bb2280bfd8d1c427 100644 |
| --- a/extensions/browser/api/cast_channel/logger.cc |
| +++ b/extensions/browser/api/cast_channel/logger.cc |
| @@ -4,6 +4,8 @@ |
| #include "extensions/browser/api/cast_channel/logger.h" |
| +#include <string> |
| + |
| #include "base/strings/string_util.h" |
| #include "base/time/tick_clock.h" |
| #include "extensions/browser/api/cast_channel/cast_auth_util.h" |
| @@ -98,6 +100,21 @@ scoped_ptr<char[]> Compress(const std::string& input, size_t* length) { |
| return out.Pass(); |
| } |
| +// Returns true if the event type should be reported to the API as the last |
| +// socket event before an error occurred. Some events are not interesting and |
| +// should be ignored. |
| +bool IsInterestingEventType(EventType type) { |
| + switch (type) { |
| + case proto::READY_STATE_CHANGED: |
| + case proto::ERROR_STATE_CHANGED: |
|
imcheng
2014/09/17 22:34:08
Are other state changes (read/write/connect states
mark a. foltz
2014/10/09 23:51:42
Changed this to just check for errors set as you m
|
| + case proto::NOTIFY_ON_MESSAGE: |
| + case proto::NOTIFY_ON_ERROR: |
| + return false; |
| + default: |
| + return true; |
| + } |
| +} |
| + |
| } // namespace |
| Logger::AggregatedSocketEventLog::AggregatedSocketEventLog() { |
| @@ -290,8 +307,11 @@ AggregatedSocketEvent& Logger::LogSocketEvent(int channel_id, |
| socket_events.push_back(socket_event); |
| - it->second->last_errors.event_type = socket_event.type(); |
| - if (socket_event.has_net_return_value()) { |
| + if (IsInterestingEventType(socket_event.type())) { |
| + it->second->last_errors.event_type = socket_event.type(); |
| + } |
| + if (socket_event.has_net_return_value() && |
| + socket_event.net_return_value() != net::ERR_IO_PENDING) { |
| it->second->last_errors.net_return_value = socket_event.net_return_value(); |
| } |
| if (socket_event.has_challenge_reply_error_type()) { |
| @@ -356,5 +376,5 @@ LastErrors Logger::GetLastErrors(int channel_id) const { |
| } |
| } // namespace cast_channel |
| -} // namespace api |
| +} // namespace core_api |
| } // namespace extensions |