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

Unified Diff: extensions/browser/api/cast_channel/logger.cc

Issue 2688463003: [chrome.cast.channel] Remove event logging. (Closed)
Patch Set: Remove errors object when socket is closed Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 0c2453f4289d347dee522b2771875b423b31e0c1..f31a8496032483d4b7550e0e6df91408311bef2c 100644
--- a/extensions/browser/api/cast_channel/logger.cc
+++ b/extensions/browser/api/cast_channel/logger.cc
@@ -11,27 +11,21 @@
#include "base/memory/ptr_util.h"
#include "base/strings/string_util.h"
-#include "base/time/clock.h"
#include "extensions/browser/api/cast_channel/cast_auth_util.h"
#include "extensions/browser/api/cast_channel/cast_socket.h"
-#include "extensions/browser/api/cast_channel/logger_util.h"
#include "net/base/net_errors.h"
-#include "third_party/zlib/zlib.h"
namespace extensions {
namespace api {
namespace cast_channel {
using net::IPEndPoint;
-using proto::AggregatedSocketEvent;
using proto::EventType;
using proto::Log;
using proto::SocketEvent;
namespace {
-const char kInternalNamespacePrefix[] = "com.google.cast";
-
proto::ChallengeReplyErrorType ChallegeReplyErrorToProto(
AuthResult::ErrorType error_type) {
switch (error_type) {
@@ -75,44 +69,6 @@ proto::ChallengeReplyErrorType ChallegeReplyErrorToProto(
}
}
-std::unique_ptr<char[]> Compress(const std::string& input, size_t* length) {
- *length = 0;
- z_stream stream = {0};
- int result = deflateInit2(&stream,
- Z_DEFAULT_COMPRESSION,
- Z_DEFLATED,
- // 16 is added to produce a gzip header + trailer.
- MAX_WBITS + 16,
- 8, // memLevel = 8 is default.
- Z_DEFAULT_STRATEGY);
- DCHECK_EQ(Z_OK, result);
-
- size_t out_size = deflateBound(&stream, input.size());
- std::unique_ptr<char[]> out(new char[out_size]);
-
- stream.next_in = reinterpret_cast<uint8_t*>(const_cast<char*>(input.data()));
- stream.avail_in = input.size();
- stream.next_out = reinterpret_cast<uint8_t*>(out.get());
- stream.avail_out = out_size;
-
- // Do a one-shot compression. This will return Z_STREAM_END only if |output|
- // is large enough to hold all compressed data.
- result = deflate(&stream, Z_FINISH);
-
- bool success = (result == Z_STREAM_END);
-
- if (!success)
- VLOG(2) << "deflate() failed. Result: " << result;
-
- result = deflateEnd(&stream);
- DCHECK(result == Z_OK || result == Z_DATA_ERROR);
-
- if (success)
- *length = out_size - stream.avail_out;
-
- return out;
-}
-
// Propagate any error fields set in |event| to |last_errors|. If any error
// field in |event| is set, then also set |last_errors->event_type|.
void MaybeSetLastErrors(const SocketEvent& event, LastErrors* last_errors) {
@@ -130,16 +86,14 @@ void MaybeSetLastErrors(const SocketEvent& event, LastErrors* last_errors) {
} // namespace
-Logger::AggregatedSocketEventLog::AggregatedSocketEventLog() {
-}
+LastErrors::LastErrors()
+ : event_type(proto::EVENT_TYPE_UNKNOWN),
+ challenge_reply_error_type(proto::CHALLENGE_REPLY_ERROR_NONE),
+ net_return_value(net::OK) {}
-Logger::AggregatedSocketEventLog::~AggregatedSocketEventLog() {
-}
-
-Logger::Logger(std::unique_ptr<base::Clock> clock, base::Time unix_epoch_time)
- : clock_(std::move(clock)), unix_epoch_time_(unix_epoch_time) {
- DCHECK(clock_);
+LastErrors::~LastErrors() {}
+Logger::Logger() {
// Logger may not be necessarily be created on the IO thread, but logging
// happens exclusively there.
thread_checker_.DetachFromThread();
@@ -148,37 +102,6 @@ Logger::Logger(std::unique_ptr<base::Clock> clock, base::Time unix_epoch_time)
Logger::~Logger() {
}
-void Logger::LogNewSocketEvent(const CastSocket& cast_socket) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- SocketEvent event = CreateEvent(proto::CAST_SOCKET_CREATED);
- AggregatedSocketEvent& aggregated_socket_event =
- LogSocketEvent(cast_socket.id(), event);
-
- const net::IPAddress& ip = cast_socket.ip_endpoint().address();
- DCHECK(ip.IsValid());
- aggregated_socket_event.set_endpoint_id(ip.bytes().back());
- aggregated_socket_event.set_channel_auth_type(proto::SSL_VERIFIED);
-}
-
-void Logger::LogSocketEvent(int channel_id, EventType event_type) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- LogSocketEventWithDetails(channel_id, event_type, std::string());
-}
-
-void Logger::LogSocketEventWithDetails(int channel_id,
- EventType event_type,
- const std::string& details) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- SocketEvent event = CreateEvent(event_type);
- if (!details.empty())
- event.set_details(details);
-
- LogSocketEvent(channel_id, event);
-}
-
void Logger::LogSocketEventWithRv(int channel_id,
EventType event_type,
int rv) {
@@ -187,79 +110,6 @@ void Logger::LogSocketEventWithRv(int channel_id,
SocketEvent event = CreateEvent(event_type);
event.set_net_return_value(rv);
- AggregatedSocketEvent& aggregated_socket_event =
- LogSocketEvent(channel_id, event);
-
- if ((event_type == proto::SOCKET_READ || event_type == proto::SOCKET_WRITE) &&
- rv > 0) {
- if (event_type == proto::SOCKET_READ) {
- aggregated_socket_event.set_bytes_read(
- aggregated_socket_event.bytes_read() + rv);
- } else {
- aggregated_socket_event.set_bytes_written(
- aggregated_socket_event.bytes_written() + rv);
- }
- }
-}
-
-void Logger::LogSocketReadyState(int channel_id, proto::ReadyState new_state) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- SocketEvent event = CreateEvent(proto::READY_STATE_CHANGED);
- event.set_ready_state(new_state);
-
- LogSocketEvent(channel_id, event);
-}
-
-void Logger::LogSocketConnectState(int channel_id,
- proto::ConnectionState new_state) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- SocketEvent event = CreateEvent(proto::CONNECTION_STATE_CHANGED);
- event.set_connection_state(new_state);
-
- LogSocketEvent(channel_id, event);
-}
-
-void Logger::LogSocketReadState(int channel_id, proto::ReadState new_state) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- SocketEvent event = CreateEvent(proto::READ_STATE_CHANGED);
- event.set_read_state(new_state);
-
- LogSocketEvent(channel_id, event);
-}
-
-void Logger::LogSocketWriteState(int channel_id, proto::WriteState new_state) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- SocketEvent event = CreateEvent(proto::WRITE_STATE_CHANGED);
- event.set_write_state(new_state);
-
- LogSocketEvent(channel_id, event);
-}
-
-void Logger::LogSocketErrorState(int channel_id, proto::ErrorState new_state) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- SocketEvent event = CreateEvent(proto::ERROR_STATE_CHANGED);
- event.set_error_state(new_state);
-
- LogSocketEvent(channel_id, event);
-}
-
-void Logger::LogSocketEventForMessage(int channel_id,
- EventType event_type,
- const std::string& message_namespace,
- const std::string& details) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- SocketEvent event = CreateEvent(event_type);
- if (base::StartsWith(message_namespace, kInternalNamespacePrefix,
- base::CompareCase::INSENSITIVE_ASCII))
- event.set_message_namespace(message_namespace);
- event.set_details(details);
-
LogSocketEvent(channel_id, event);
}
@@ -274,100 +124,31 @@ void Logger::LogSocketChallengeReplyEvent(int channel_id,
LogSocketEvent(channel_id, event);
}
-SocketEvent Logger::CreateEvent(EventType event_type) {
- SocketEvent event;
- event.set_type(event_type);
- event.set_timestamp_micros(
- (clock_->Now() - unix_epoch_time_).InMicroseconds());
- return event;
-}
-
-AggregatedSocketEvent& Logger::LogSocketEvent(int channel_id,
- const SocketEvent& socket_event) {
- AggregatedSocketEventLogMap::iterator it =
- aggregated_socket_events_.find(channel_id);
- if (it == aggregated_socket_events_.end()) {
- if (aggregated_socket_events_.size() >= kMaxSocketsToLog) {
- AggregatedSocketEventLogMap::iterator erase_it =
- aggregated_socket_events_.begin();
-
- log_.set_num_evicted_aggregated_socket_events(
- log_.num_evicted_aggregated_socket_events() + 1);
- log_.set_num_evicted_socket_events(
- log_.num_evicted_socket_events() +
- erase_it->second->socket_events.size());
-
- aggregated_socket_events_.erase(erase_it);
- }
-
- it = aggregated_socket_events_
- .insert(std::make_pair(
- channel_id, base::MakeUnique<AggregatedSocketEventLog>()))
- .first;
- it->second->aggregated_socket_event.set_id(channel_id);
- }
-
- std::deque<proto::SocketEvent>& socket_events = it->second->socket_events;
- if (socket_events.size() >= kMaxEventsPerSocket) {
- socket_events.pop_front();
- log_.set_num_evicted_socket_events(log_.num_evicted_socket_events() + 1);
+LastErrors Logger::GetLastErrors(int channel_id) const {
+ LastErrorsMap::const_iterator it = last_errors_.find(channel_id);
+ if (it != last_errors_.end()) {
+ return it->second;
+ } else {
+ return LastErrors();
}
- socket_events.push_back(socket_event);
-
- MaybeSetLastErrors(socket_event, &(it->second->last_errors));
-
- return it->second->aggregated_socket_event;
}
-std::unique_ptr<char[]> Logger::GetLogs(size_t* length) const {
- *length = 0;
-
- Log log;
- // Copy "global" values from |log_|. Don't use |log_| directly since this
- // function is const.
- log.CopyFrom(log_);
-
- for (AggregatedSocketEventLogMap::const_iterator it =
- aggregated_socket_events_.begin();
- it != aggregated_socket_events_.end();
- ++it) {
- AggregatedSocketEvent* new_aggregated_socket_event =
- log.add_aggregated_socket_event();
- new_aggregated_socket_event->CopyFrom(it->second->aggregated_socket_event);
-
- const std::deque<SocketEvent>& socket_events = it->second->socket_events;
- for (std::deque<SocketEvent>::const_iterator socket_event_it =
- socket_events.begin();
- socket_event_it != socket_events.end();
- ++socket_event_it) {
- SocketEvent* socket_event =
- new_aggregated_socket_event->add_socket_event();
- socket_event->CopyFrom(*socket_event_it);
- }
- }
-
- std::string serialized;
- if (!log.SerializeToString(&serialized)) {
- VLOG(2) << "Failed to serialized proto to string.";
- return std::unique_ptr<char[]>();
- }
-
- return Compress(serialized, length);
+void Logger::ClearLastErrors(int channel_id) {
+ last_errors_.erase(channel_id);
}
-void Logger::Reset() {
- aggregated_socket_events_.clear();
- log_.Clear();
+SocketEvent Logger::CreateEvent(EventType event_type) {
+ SocketEvent event;
+ event.set_type(event_type);
+ return event;
}
-LastErrors Logger::GetLastErrors(int channel_id) const {
- AggregatedSocketEventLogMap::const_iterator it =
- aggregated_socket_events_.find(channel_id);
- if (it != aggregated_socket_events_.end()) {
- return it->second->last_errors;
- } else {
- return LastErrors();
- }
+void Logger::LogSocketEvent(int channel_id, const SocketEvent& socket_event) {
+ LastErrorsMap::iterator it = last_errors_.find(channel_id);
+ if (it == last_errors_.end())
+ last_errors_[channel_id] = LastErrors();
+
+ MaybeSetLastErrors(socket_event, &last_errors_[channel_id]);
Kevin M 2017/02/09 19:28:54 Since this only makes changes for errors now, can
mark a. foltz 2017/02/10 21:55:16 Done, in places which didn't complicate the callin
}
} // namespace cast_channel

Powered by Google App Engine
This is Rietveld 408576698