| Index: blimp/common/logging.cc
|
| diff --git a/blimp/common/logging.cc b/blimp/common/logging.cc
|
| index d10adbd17c96d7e117f8244b377ef992a0b859f4..6f5587b20843d6e1e5ebb98c77a8b7b944421679 100644
|
| --- a/blimp/common/logging.cc
|
| +++ b/blimp/common/logging.cc
|
| @@ -66,20 +66,51 @@ void AddField(const std::string& key, const T& value, LogFields* output) {
|
| // The following LogExtractor subclasses contain logic for extracting loggable
|
| // fields from BlimpMessages.
|
|
|
| -// Logs fields from TAB_CONTROL messages.
|
| -class TabControlLogExtractor : public LogExtractor {
|
| +// Logs fields from COMPOSITOR messages.
|
| +class CompositorLogExtractor : public LogExtractor {
|
| void ExtractFields(const BlimpMessage& message,
|
| LogFields* output) const override {
|
| - switch (message.tab_control().type()) {
|
| - case TabControlMessage::CREATE_TAB:
|
| - AddField("subtype", "CREATE_TAB", output);
|
| + AddField("render_widget_id", message.compositor().render_widget_id(),
|
| + output);
|
| + }
|
| +};
|
| +
|
| +// Logs fields from INPUT messages.
|
| +class InputLogExtractor : public LogExtractor {
|
| + void ExtractFields(const BlimpMessage& message,
|
| + LogFields* output) const override {
|
| + AddField("render_widget_id", message.input().render_widget_id(), output);
|
| + AddField("timestamp_seconds", message.input().timestamp_seconds(), output);
|
| + switch (message.input().type()) {
|
| + case InputMessage::Type_GestureScrollBegin:
|
| + AddField("subtype", "GestureScrollBegin", output);
|
| break;
|
| - case TabControlMessage::CLOSE_TAB:
|
| - AddField("subtype", "CLOSE_TAB", output);
|
| + case InputMessage::Type_GestureScrollEnd:
|
| + AddField("subtype", "GestureScrollEnd", output);
|
| break;
|
| - case TabControlMessage::SIZE:
|
| - AddField("subtype", "SIZE", output);
|
| - AddField("size", message.tab_control().size(), output);
|
| + case InputMessage::Type_GestureScrollUpdate:
|
| + AddField("subtype", "GestureScrollUpdate", output);
|
| + break;
|
| + case InputMessage::Type_GestureFlingStart:
|
| + AddField("subtype", "GestureFlingStart", output);
|
| + break;
|
| + case InputMessage::Type_GestureFlingCancel:
|
| + AddField("subtype", "GestureFlingCancel", output);
|
| + AddField("prevent_boosting",
|
| + message.input().gesture_fling_cancel().prevent_boosting(),
|
| + output);
|
| + break;
|
| + case InputMessage::Type_GestureTap:
|
| + AddField("subtype", "GestureTap", output);
|
| + break;
|
| + case InputMessage::Type_GesturePinchBegin:
|
| + AddField("subtype", "GesturePinchBegin", output);
|
| + break;
|
| + case InputMessage::Type_GesturePinchEnd:
|
| + AddField("subtype", "GesturePinchEnd", output);
|
| + break;
|
| + case InputMessage::Type_GesturePinchUpdate:
|
| + AddField("subtype", "GesturePinchUpdate", output);
|
| break;
|
| default: // unknown
|
| break;
|
| @@ -134,53 +165,28 @@ class NavigationLogExtractor : public LogExtractor {
|
| }
|
| };
|
|
|
| -// Logs fields from COMPOSITOR messages.
|
| -class CompositorLogExtractor : public LogExtractor {
|
| - void ExtractFields(const BlimpMessage& message,
|
| - LogFields* output) const override {
|
| - AddField("render_widget_id", message.compositor().render_widget_id(),
|
| - output);
|
| - }
|
| -};
|
| -
|
| -// Logs fields from INPUT messages.
|
| -class InputLogExtractor : public LogExtractor {
|
| +// Logs fields from PROTOCOL_CONTROL messages.
|
| +class ProtocolControlLogExtractor : public LogExtractor {
|
| void ExtractFields(const BlimpMessage& message,
|
| LogFields* output) const override {
|
| - AddField("render_widget_id", message.input().render_widget_id(), output);
|
| - AddField("timestamp_seconds", message.input().timestamp_seconds(), output);
|
| - switch (message.input().type()) {
|
| - case InputMessage::Type_GestureScrollBegin:
|
| - AddField("subtype", "GestureScrollBegin", output);
|
| - break;
|
| - case InputMessage::Type_GestureScrollEnd:
|
| - AddField("subtype", "GestureScrollEnd", output);
|
| - break;
|
| - case InputMessage::Type_GestureScrollUpdate:
|
| - AddField("subtype", "GestureScrollUpdate", output);
|
| - break;
|
| - case InputMessage::Type_GestureFlingStart:
|
| - AddField("subtype", "GestureFlingStart", output);
|
| - break;
|
| - case InputMessage::Type_GestureFlingCancel:
|
| - AddField("subtype", "GestureFlingCancel", output);
|
| - AddField("prevent_boosting",
|
| - message.input().gesture_fling_cancel().prevent_boosting(),
|
| + switch (message.protocol_control().type()) {
|
| + case ProtocolControlMessage::START_CONNECTION:
|
| + AddField("subtype", "START_CONNECTION", output);
|
| + AddField("client_token",
|
| + message.protocol_control().start_connection().client_token(),
|
| output);
|
| + AddField(
|
| + "protocol_version",
|
| + message.protocol_control().start_connection().protocol_version(),
|
| + output);
|
| break;
|
| - case InputMessage::Type_GestureTap:
|
| - AddField("subtype", "GestureTap", output);
|
| - break;
|
| - case InputMessage::Type_GesturePinchBegin:
|
| - AddField("subtype", "GesturePinchBegin", output);
|
| - break;
|
| - case InputMessage::Type_GesturePinchEnd:
|
| - AddField("subtype", "GesturePinchEnd", output);
|
| - break;
|
| - case InputMessage::Type_GesturePinchUpdate:
|
| - AddField("subtype", "GesturePinchUpdate", output);
|
| + case ProtocolControlMessage::CHECKPOINT_ACK:
|
| + AddField("subtype", "CHECKPOINT_ACK", output);
|
| + AddField("checkpoint_id",
|
| + message.protocol_control().checkpoint_ack().checkpoint_id(),
|
| + output);
|
| break;
|
| - default: // unknown
|
| + default:
|
| break;
|
| }
|
| }
|
| @@ -206,28 +212,37 @@ class RenderWidgetLogExtractor : public LogExtractor {
|
| }
|
| };
|
|
|
| -// Logs fields from PROTOCOL_CONTROL messages.
|
| -class ProtocolControlLogExtractor : public LogExtractor {
|
| +// Logs fields from SETTINGS messages.
|
| +class SettingsLogExtractor : public LogExtractor {
|
| void ExtractFields(const BlimpMessage& message,
|
| LogFields* output) const override {
|
| - switch (message.protocol_control().type()) {
|
| - case ProtocolControlMessage::START_CONNECTION:
|
| - AddField("subtype", "START_CONNECTION", output);
|
| - AddField("client_token",
|
| - message.protocol_control().start_connection().client_token(),
|
| - output);
|
| - AddField(
|
| - "protocol_version",
|
| - message.protocol_control().start_connection().protocol_version(),
|
| - output);
|
| + if (message.settings().has_engine_settings()) {
|
| + const EngineSettingsMessage& engine_settings =
|
| + message.settings().engine_settings();
|
| + AddField("subtype", "ENGINE_SETTINGS", output);
|
| + AddField("record_whole_document", engine_settings.record_whole_document(),
|
| + output);
|
| + AddField("client_os_info", engine_settings.client_os_info(), output);
|
| + }
|
| + }
|
| +};
|
| +
|
| +// Logs fields from TAB_CONTROL messages.
|
| +class TabControlLogExtractor : public LogExtractor {
|
| + void ExtractFields(const BlimpMessage& message,
|
| + LogFields* output) const override {
|
| + switch (message.tab_control().type()) {
|
| + case TabControlMessage::CREATE_TAB:
|
| + AddField("subtype", "CREATE_TAB", output);
|
| break;
|
| - case ProtocolControlMessage::CHECKPOINT_ACK:
|
| - AddField("subtype", "CHECKPOINT_ACK", output);
|
| - AddField("checkpoint_id",
|
| - message.protocol_control().checkpoint_ack().checkpoint_id(),
|
| - output);
|
| + case TabControlMessage::CLOSE_TAB:
|
| + AddField("subtype", "CLOSE_TAB", output);
|
| break;
|
| - default:
|
| + case TabControlMessage::SIZE:
|
| + AddField("subtype", "SIZE", output);
|
| + AddField("size", message.tab_control().size(), output);
|
| + break;
|
| + default: // unknown
|
| break;
|
| }
|
| }
|
| @@ -252,6 +267,8 @@ BlimpMessageLogger::BlimpMessageLogger() {
|
| base::WrapUnique(new ProtocolControlLogExtractor));
|
| AddHandler("RENDER_WIDGET", BlimpMessage::RENDER_WIDGET,
|
| base::WrapUnique(new RenderWidgetLogExtractor));
|
| + AddHandler("SETTINGS", BlimpMessage::SETTINGS,
|
| + base::WrapUnique(new SettingsLogExtractor));
|
| AddHandler("TAB_CONTROL", BlimpMessage::TAB_CONTROL,
|
| base::WrapUnique(new TabControlLogExtractor));
|
| }
|
|
|