text: // source: webview.proto
  /**
   * @fileoverview
   * @enhanceable
   * @suppress {missingRequire} reports error on implicit type usages.
   * @suppress {messageConventions} JS Compiler reports an error if a variable or
   *     field starts with 'MSG_' and isn't a translatable message.
   * @public
   */
  // GENERATED CODE -- DO NOT EDIT!
  /* eslint-disable */
  // @ts-nocheck
  
  var jspb = require('google-protobuf');
  var goog = jspb;
  var global = Function('return this')();
  
  var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js');
  goog.object.extend(proto, google_protobuf_empty_pb);
  goog.exportSymbol('proto.webview.ClientResponse', null, global);
  goog.exportSymbol('proto.webview.ClientResponseList', null, global);
  goog.exportSymbol('proto.webview.ClientState', null, global);
  goog.exportSymbol('proto.webview.ConnectionResponse', null, global);
  goog.exportSymbol('proto.webview.CreateWebViewRequest', null, global);
  goog.exportSymbol('proto.webview.FileMessageRequest', null, global);
  goog.exportSymbol('proto.webview.FileReadDataRequest', null, global);
  goog.exportSymbol('proto.webview.FileReadInitRequest', null, global);
  goog.exportSymbol('proto.webview.FileReadLengthRequest', null, global);
  goog.exportSymbol('proto.webview.FileReadRequest', null, global);
  goog.exportSymbol('proto.webview.FileReadRequest.FilereadCase', null, global);
  goog.exportSymbol('proto.webview.FileReadResponse', null, global);
  goog.exportSymbol('proto.webview.IdArrayResponse', null, global);
  goog.exportSymbol('proto.webview.IdMessageRequest', null, global);
  goog.exportSymbol('proto.webview.SendMessageRequest', null, global);
  goog.exportSymbol('proto.webview.SendMessageResponse', null, global);
  goog.exportSymbol('proto.webview.SendSequenceMessageRequest', null, global);
  goog.exportSymbol('proto.webview.ServerResponse', null, global);
  goog.exportSymbol('proto.webview.StringRequest', null, global);
  goog.exportSymbol('proto.webview.TaskResponse', null, global);
  goog.exportSymbol('proto.webview.TaskStatus', null, global);
  goog.exportSymbol('proto.webview.UserMessageRequest', null, global);
  goog.exportSymbol('proto.webview.WebMessageResponse', null, global);
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.SendMessageRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.SendMessageRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.SendMessageRequest.displayName = 'proto.webview.SendMessageRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.FileMessageRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.FileMessageRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.FileMessageRequest.displayName = 'proto.webview.FileMessageRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.IdMessageRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.IdMessageRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.IdMessageRequest.displayName = 'proto.webview.IdMessageRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.CreateWebViewRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.CreateWebViewRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.CreateWebViewRequest.displayName = 'proto.webview.CreateWebViewRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.WebMessageResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.WebMessageResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.WebMessageResponse.displayName = 'proto.webview.WebMessageResponse';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.IdArrayResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.webview.IdArrayResponse.repeatedFields_, null);
  };
  goog.inherits(proto.webview.IdArrayResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.IdArrayResponse.displayName = 'proto.webview.IdArrayResponse';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.FileReadInitRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.FileReadInitRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.FileReadInitRequest.displayName = 'proto.webview.FileReadInitRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.FileReadDataRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.FileReadDataRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.FileReadDataRequest.displayName = 'proto.webview.FileReadDataRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.FileReadLengthRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.FileReadLengthRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.FileReadLengthRequest.displayName = 'proto.webview.FileReadLengthRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.FileReadRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, proto.webview.FileReadRequest.oneofGroups_);
  };
  goog.inherits(proto.webview.FileReadRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.FileReadRequest.displayName = 'proto.webview.FileReadRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.FileReadResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.FileReadResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.FileReadResponse.displayName = 'proto.webview.FileReadResponse';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.StringRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.StringRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.StringRequest.displayName = 'proto.webview.StringRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.SendSequenceMessageRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.SendSequenceMessageRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.SendSequenceMessageRequest.displayName = 'proto.webview.SendSequenceMessageRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.SendMessageResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.SendMessageResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.SendMessageResponse.displayName = 'proto.webview.SendMessageResponse';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.ClientResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.ClientResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.ClientResponse.displayName = 'proto.webview.ClientResponse';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.ClientResponseList = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.webview.ClientResponseList.repeatedFields_, null);
  };
  goog.inherits(proto.webview.ClientResponseList, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.ClientResponseList.displayName = 'proto.webview.ClientResponseList';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.UserMessageRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.UserMessageRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.UserMessageRequest.displayName = 'proto.webview.UserMessageRequest';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.TaskResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.webview.TaskResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.TaskResponse.displayName = 'proto.webview.TaskResponse';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.ConnectionResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.webview.ConnectionResponse.repeatedFields_, null);
  };
  goog.inherits(proto.webview.ConnectionResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.ConnectionResponse.displayName = 'proto.webview.ConnectionResponse';
  }
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.webview.ServerResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.webview.ServerResponse.repeatedFields_, null);
  };
  goog.inherits(proto.webview.ServerResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    /**
     * @public
     * @override
     */
    proto.webview.ServerResponse.displayName = 'proto.webview.ServerResponse';
  }
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.SendMessageRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.SendMessageRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.SendMessageRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.SendMessageRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      message: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.SendMessageRequest}
   */
  proto.webview.SendMessageRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.SendMessageRequest;
    return proto.webview.SendMessageRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.SendMessageRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.SendMessageRequest}
   */
  proto.webview.SendMessageRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setMessage(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.SendMessageRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.SendMessageRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.SendMessageRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.SendMessageRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getMessage();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.SendMessageRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.SendMessageRequest} returns this
   */
  proto.webview.SendMessageRequest.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string message = 2;
   * @return {string}
   */
  proto.webview.SendMessageRequest.prototype.getMessage = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.SendMessageRequest} returns this
   */
  proto.webview.SendMessageRequest.prototype.setMessage = function(value) {
    return jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.FileMessageRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.FileMessageRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.FileMessageRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileMessageRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      path: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.FileMessageRequest}
   */
  proto.webview.FileMessageRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.FileMessageRequest;
    return proto.webview.FileMessageRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.FileMessageRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.FileMessageRequest}
   */
  proto.webview.FileMessageRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPath(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.FileMessageRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.FileMessageRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.FileMessageRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileMessageRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getPath();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.FileMessageRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.FileMessageRequest} returns this
   */
  proto.webview.FileMessageRequest.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string path = 2;
   * @return {string}
   */
  proto.webview.FileMessageRequest.prototype.getPath = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.FileMessageRequest} returns this
   */
  proto.webview.FileMessageRequest.prototype.setPath = function(value) {
    return jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.IdMessageRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.IdMessageRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.IdMessageRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.IdMessageRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.IdMessageRequest}
   */
  proto.webview.IdMessageRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.IdMessageRequest;
    return proto.webview.IdMessageRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.IdMessageRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.IdMessageRequest}
   */
  proto.webview.IdMessageRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.IdMessageRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.IdMessageRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.IdMessageRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.IdMessageRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.IdMessageRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.IdMessageRequest} returns this
   */
  proto.webview.IdMessageRequest.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.CreateWebViewRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.CreateWebViewRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.CreateWebViewRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.CreateWebViewRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      htmlhostpath: jspb.Message.getFieldWithDefault(msg, 2, ""),
      markup: jspb.Message.getFieldWithDefault(msg, 3, ""),
      group: jspb.Message.getFieldWithDefault(msg, 4, ""),
      pid: jspb.Message.getFieldWithDefault(msg, 5, 0),
      processname: jspb.Message.getFieldWithDefault(msg, 6, ""),
      hostname: jspb.Message.getFieldWithDefault(msg, 7, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.CreateWebViewRequest}
   */
  proto.webview.CreateWebViewRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.CreateWebViewRequest;
    return proto.webview.CreateWebViewRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.CreateWebViewRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.CreateWebViewRequest}
   */
  proto.webview.CreateWebViewRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setHtmlhostpath(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setMarkup(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setGroup(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setPid(value);
        break;
      case 6:
        var value = /** @type {string} */ (reader.readString());
        msg.setProcessname(value);
        break;
      case 7:
        var value = /** @type {string} */ (reader.readString());
        msg.setHostname(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.CreateWebViewRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.CreateWebViewRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.CreateWebViewRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.CreateWebViewRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getHtmlhostpath();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = message.getMarkup();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = message.getGroup();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
    f = message.getPid();
    if (f !== 0) {
      writer.writeInt32(
        5,
        f
      );
    }
    f = message.getProcessname();
    if (f.length > 0) {
      writer.writeString(
        6,
        f
      );
    }
    f = message.getHostname();
    if (f.length > 0) {
      writer.writeString(
        7,
        f
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.CreateWebViewRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.CreateWebViewRequest} returns this
   */
  proto.webview.CreateWebViewRequest.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string htmlHostPath = 2;
   * @return {string}
   */
  proto.webview.CreateWebViewRequest.prototype.getHtmlhostpath = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.CreateWebViewRequest} returns this
   */
  proto.webview.CreateWebViewRequest.prototype.setHtmlhostpath = function(value) {
    return jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * optional string markup = 3;
   * @return {string}
   */
  proto.webview.CreateWebViewRequest.prototype.getMarkup = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.CreateWebViewRequest} returns this
   */
  proto.webview.CreateWebViewRequest.prototype.setMarkup = function(value) {
    return jspb.Message.setProto3StringField(this, 3, value);
  };
  
  
  /**
   * optional string group = 4;
   * @return {string}
   */
  proto.webview.CreateWebViewRequest.prototype.getGroup = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.CreateWebViewRequest} returns this
   */
  proto.webview.CreateWebViewRequest.prototype.setGroup = function(value) {
    return jspb.Message.setProto3StringField(this, 4, value);
  };
  
  
  /**
   * optional int32 pid = 5;
   * @return {number}
   */
  proto.webview.CreateWebViewRequest.prototype.getPid = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.CreateWebViewRequest} returns this
   */
  proto.webview.CreateWebViewRequest.prototype.setPid = function(value) {
    return jspb.Message.setProto3IntField(this, 5, value);
  };
  
  
  /**
   * optional string processName = 6;
   * @return {string}
   */
  proto.webview.CreateWebViewRequest.prototype.getProcessname = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.CreateWebViewRequest} returns this
   */
  proto.webview.CreateWebViewRequest.prototype.setProcessname = function(value) {
    return jspb.Message.setProto3StringField(this, 6, value);
  };
  
  
  /**
   * optional string hostName = 7;
   * @return {string}
   */
  proto.webview.CreateWebViewRequest.prototype.getHostname = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.CreateWebViewRequest} returns this
   */
  proto.webview.CreateWebViewRequest.prototype.setHostname = function(value) {
    return jspb.Message.setProto3StringField(this, 7, value);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.WebMessageResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.WebMessageResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.WebMessageResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.WebMessageResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      response: jspb.Message.getFieldWithDefault(msg, 1, ""),
      url: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.WebMessageResponse}
   */
  proto.webview.WebMessageResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.WebMessageResponse;
    return proto.webview.WebMessageResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.WebMessageResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.WebMessageResponse}
   */
  proto.webview.WebMessageResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setResponse(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setUrl(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.WebMessageResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.WebMessageResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.WebMessageResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.WebMessageResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getResponse();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getUrl();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string response = 1;
   * @return {string}
   */
  proto.webview.WebMessageResponse.prototype.getResponse = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.WebMessageResponse} returns this
   */
  proto.webview.WebMessageResponse.prototype.setResponse = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string url = 2;
   * @return {string}
   */
  proto.webview.WebMessageResponse.prototype.getUrl = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.WebMessageResponse} returns this
   */
  proto.webview.WebMessageResponse.prototype.setUrl = function(value) {
    return jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.webview.IdArrayResponse.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.IdArrayResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.IdArrayResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.IdArrayResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.IdArrayResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      responsesList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.IdArrayResponse}
   */
  proto.webview.IdArrayResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.IdArrayResponse;
    return proto.webview.IdArrayResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.IdArrayResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.IdArrayResponse}
   */
  proto.webview.IdArrayResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.addResponses(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.IdArrayResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.IdArrayResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.IdArrayResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.IdArrayResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getResponsesList();
    if (f.length > 0) {
      writer.writeRepeatedString(
        1,
        f
      );
    }
  };
  
  
  /**
   * repeated string responses = 1;
   * @return {!Array<string>}
   */
  proto.webview.IdArrayResponse.prototype.getResponsesList = function() {
    return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 1));
  };
  
  
  /**
   * @param {!Array<string>} value
   * @return {!proto.webview.IdArrayResponse} returns this
   */
  proto.webview.IdArrayResponse.prototype.setResponsesList = function(value) {
    return jspb.Message.setField(this, 1, value || []);
  };
  
  
  /**
   * @param {string} value
   * @param {number=} opt_index
   * @return {!proto.webview.IdArrayResponse} returns this
   */
  proto.webview.IdArrayResponse.prototype.addResponses = function(value, opt_index) {
    return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
  };
  
  
  /**
   * Clears the list making it empty but non-null.
   * @return {!proto.webview.IdArrayResponse} returns this
   */
  proto.webview.IdArrayResponse.prototype.clearResponsesList = function() {
    return this.setResponsesList([]);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.FileReadInitRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.FileReadInitRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.FileReadInitRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileReadInitRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
  
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.FileReadInitRequest}
   */
  proto.webview.FileReadInitRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.FileReadInitRequest;
    return proto.webview.FileReadInitRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.FileReadInitRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.FileReadInitRequest}
   */
  proto.webview.FileReadInitRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.FileReadInitRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.FileReadInitRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.FileReadInitRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileReadInitRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.FileReadDataRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.FileReadDataRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.FileReadDataRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileReadDataRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      path: jspb.Message.getFieldWithDefault(msg, 2, ""),
      data: msg.getData_asB64()
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.FileReadDataRequest}
   */
  proto.webview.FileReadDataRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.FileReadDataRequest;
    return proto.webview.FileReadDataRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.FileReadDataRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.FileReadDataRequest}
   */
  proto.webview.FileReadDataRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPath(value);
        break;
      case 3:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setData(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.FileReadDataRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.FileReadDataRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.FileReadDataRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileReadDataRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getPath();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = message.getData_asU8();
    if (f.length > 0) {
      writer.writeBytes(
        3,
        f
      );
    }
  };
  
  
  /**
   * optional string path = 2;
   * @return {string}
   */
  proto.webview.FileReadDataRequest.prototype.getPath = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.FileReadDataRequest} returns this
   */
  proto.webview.FileReadDataRequest.prototype.setPath = function(value) {
    return jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * optional bytes data = 3;
   * @return {!(string|Uint8Array)}
   */
  proto.webview.FileReadDataRequest.prototype.getData = function() {
    return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /**
   * optional bytes data = 3;
   * This is a type-conversion wrapper around `getData()`
   * @return {string}
   */
  proto.webview.FileReadDataRequest.prototype.getData_asB64 = function() {
    return /** @type {string} */ (jspb.Message.bytesAsB64(
        this.getData()));
  };
  
  
  /**
   * optional bytes data = 3;
   * Note that Uint8Array is not supported on all browsers.
   * @see http://caniuse.com/Uint8Array
   * This is a type-conversion wrapper around `getData()`
   * @return {!Uint8Array}
   */
  proto.webview.FileReadDataRequest.prototype.getData_asU8 = function() {
    return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
        this.getData()));
  };
  
  
  /**
   * @param {!(string|Uint8Array)} value
   * @return {!proto.webview.FileReadDataRequest} returns this
   */
  proto.webview.FileReadDataRequest.prototype.setData = function(value) {
    return jspb.Message.setProto3BytesField(this, 3, value);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.FileReadLengthRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.FileReadLengthRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.FileReadLengthRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileReadLengthRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      path: jspb.Message.getFieldWithDefault(msg, 2, ""),
      length: jspb.Message.getFieldWithDefault(msg, 3, 0)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.FileReadLengthRequest}
   */
  proto.webview.FileReadLengthRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.FileReadLengthRequest;
    return proto.webview.FileReadLengthRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.FileReadLengthRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.FileReadLengthRequest}
   */
  proto.webview.FileReadLengthRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPath(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readInt64());
        msg.setLength(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.FileReadLengthRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.FileReadLengthRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.FileReadLengthRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileReadLengthRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getPath();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = message.getLength();
    if (f !== 0) {
      writer.writeInt64(
        3,
        f
      );
    }
  };
  
  
  /**
   * optional string path = 2;
   * @return {string}
   */
  proto.webview.FileReadLengthRequest.prototype.getPath = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.FileReadLengthRequest} returns this
   */
  proto.webview.FileReadLengthRequest.prototype.setPath = function(value) {
    return jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * optional int64 length = 3;
   * @return {number}
   */
  proto.webview.FileReadLengthRequest.prototype.getLength = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.FileReadLengthRequest} returns this
   */
  proto.webview.FileReadLengthRequest.prototype.setLength = function(value) {
    return jspb.Message.setProto3IntField(this, 3, value);
  };
  
  
  
  /**
   * Oneof group definitions for this message. Each group defines the field
   * numbers belonging to that group. When of these fields' value is set, all
   * other fields in the group are cleared. During deserialization, if multiple
   * fields are encountered for a group, only the last value seen will be kept.
   * @private {!Array<!Array<number>>}
   * @const
   */
  proto.webview.FileReadRequest.oneofGroups_ = [[2,3,4]];
  
  /**
   * @enum {number}
   */
  proto.webview.FileReadRequest.FilereadCase = {
    FILEREAD_NOT_SET: 0,
    INIT: 2,
    LENGTH: 3,
    DATA: 4
  };
  
  /**
   * @return {proto.webview.FileReadRequest.FilereadCase}
   */
  proto.webview.FileReadRequest.prototype.getFilereadCase = function() {
    return /** @type {proto.webview.FileReadRequest.FilereadCase} */(jspb.Message.computeOneofCase(this, proto.webview.FileReadRequest.oneofGroups_[0]));
  };
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.FileReadRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.FileReadRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.FileReadRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileReadRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      init: (f = msg.getInit()) && proto.webview.FileReadInitRequest.toObject(includeInstance, f),
      length: (f = msg.getLength()) && proto.webview.FileReadLengthRequest.toObject(includeInstance, f),
      data: (f = msg.getData()) && proto.webview.FileReadDataRequest.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.FileReadRequest}
   */
  proto.webview.FileReadRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.FileReadRequest;
    return proto.webview.FileReadRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.FileReadRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.FileReadRequest}
   */
  proto.webview.FileReadRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = new proto.webview.FileReadInitRequest;
        reader.readMessage(value,proto.webview.FileReadInitRequest.deserializeBinaryFromReader);
        msg.setInit(value);
        break;
      case 3:
        var value = new proto.webview.FileReadLengthRequest;
        reader.readMessage(value,proto.webview.FileReadLengthRequest.deserializeBinaryFromReader);
        msg.setLength(value);
        break;
      case 4:
        var value = new proto.webview.FileReadDataRequest;
        reader.readMessage(value,proto.webview.FileReadDataRequest.deserializeBinaryFromReader);
        msg.setData(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.FileReadRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.FileReadRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.FileReadRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileReadRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getInit();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        proto.webview.FileReadInitRequest.serializeBinaryToWriter
      );
    }
    f = message.getLength();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        proto.webview.FileReadLengthRequest.serializeBinaryToWriter
      );
    }
    f = message.getData();
    if (f != null) {
      writer.writeMessage(
        4,
        f,
        proto.webview.FileReadDataRequest.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.FileReadRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.FileReadRequest} returns this
   */
  proto.webview.FileReadRequest.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional FileReadInitRequest init = 2;
   * @return {?proto.webview.FileReadInitRequest}
   */
  proto.webview.FileReadRequest.prototype.getInit = function() {
    return /** @type{?proto.webview.FileReadInitRequest} */ (
      jspb.Message.getWrapperField(this, proto.webview.FileReadInitRequest, 2));
  };
  
  
  /**
   * @param {?proto.webview.FileReadInitRequest|undefined} value
   * @return {!proto.webview.FileReadRequest} returns this
  */
  proto.webview.FileReadRequest.prototype.setInit = function(value) {
    return jspb.Message.setOneofWrapperField(this, 2, proto.webview.FileReadRequest.oneofGroups_[0], value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.webview.FileReadRequest} returns this
   */
  proto.webview.FileReadRequest.prototype.clearInit = function() {
    return this.setInit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.webview.FileReadRequest.prototype.hasInit = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  /**
   * optional FileReadLengthRequest length = 3;
   * @return {?proto.webview.FileReadLengthRequest}
   */
  proto.webview.FileReadRequest.prototype.getLength = function() {
    return /** @type{?proto.webview.FileReadLengthRequest} */ (
      jspb.Message.getWrapperField(this, proto.webview.FileReadLengthRequest, 3));
  };
  
  
  /**
   * @param {?proto.webview.FileReadLengthRequest|undefined} value
   * @return {!proto.webview.FileReadRequest} returns this
  */
  proto.webview.FileReadRequest.prototype.setLength = function(value) {
    return jspb.Message.setOneofWrapperField(this, 3, proto.webview.FileReadRequest.oneofGroups_[0], value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.webview.FileReadRequest} returns this
   */
  proto.webview.FileReadRequest.prototype.clearLength = function() {
    return this.setLength(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.webview.FileReadRequest.prototype.hasLength = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  /**
   * optional FileReadDataRequest data = 4;
   * @return {?proto.webview.FileReadDataRequest}
   */
  proto.webview.FileReadRequest.prototype.getData = function() {
    return /** @type{?proto.webview.FileReadDataRequest} */ (
      jspb.Message.getWrapperField(this, proto.webview.FileReadDataRequest, 4));
  };
  
  
  /**
   * @param {?proto.webview.FileReadDataRequest|undefined} value
   * @return {!proto.webview.FileReadRequest} returns this
  */
  proto.webview.FileReadRequest.prototype.setData = function(value) {
    return jspb.Message.setOneofWrapperField(this, 4, proto.webview.FileReadRequest.oneofGroups_[0], value);
  };
  
  
  /**
   * Clears the message field making it undefined.
   * @return {!proto.webview.FileReadRequest} returns this
   */
  proto.webview.FileReadRequest.prototype.clearData = function() {
    return this.setData(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {boolean}
   */
  proto.webview.FileReadRequest.prototype.hasData = function() {
    return jspb.Message.getField(this, 4) != null;
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.FileReadResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.FileReadResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.FileReadResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileReadResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      path: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.FileReadResponse}
   */
  proto.webview.FileReadResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.FileReadResponse;
    return proto.webview.FileReadResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.FileReadResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.FileReadResponse}
   */
  proto.webview.FileReadResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPath(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.FileReadResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.FileReadResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.FileReadResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.FileReadResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getPath();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.FileReadResponse.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.FileReadResponse} returns this
   */
  proto.webview.FileReadResponse.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string path = 2;
   * @return {string}
   */
  proto.webview.FileReadResponse.prototype.getPath = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.FileReadResponse} returns this
   */
  proto.webview.FileReadResponse.prototype.setPath = function(value) {
    return jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.StringRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.StringRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.StringRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.StringRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      request: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.StringRequest}
   */
  proto.webview.StringRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.StringRequest;
    return proto.webview.StringRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.StringRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.StringRequest}
   */
  proto.webview.StringRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setRequest(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.StringRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.StringRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.StringRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.StringRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getRequest();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.StringRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.StringRequest} returns this
   */
  proto.webview.StringRequest.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string request = 2;
   * @return {string}
   */
  proto.webview.StringRequest.prototype.getRequest = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.StringRequest} returns this
   */
  proto.webview.StringRequest.prototype.setRequest = function(value) {
    return jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.SendSequenceMessageRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.SendSequenceMessageRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.SendSequenceMessageRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.SendSequenceMessageRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      sequence: jspb.Message.getFieldWithDefault(msg, 2, 0),
      message: jspb.Message.getFieldWithDefault(msg, 3, ""),
      url: jspb.Message.getFieldWithDefault(msg, 4, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.SendSequenceMessageRequest}
   */
  proto.webview.SendSequenceMessageRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.SendSequenceMessageRequest;
    return proto.webview.SendSequenceMessageRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.SendSequenceMessageRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.SendSequenceMessageRequest}
   */
  proto.webview.SendSequenceMessageRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setSequence(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setMessage(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setUrl(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.SendSequenceMessageRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.SendSequenceMessageRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.SendSequenceMessageRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.SendSequenceMessageRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getSequence();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = message.getMessage();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = message.getUrl();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.SendSequenceMessageRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.SendSequenceMessageRequest} returns this
   */
  proto.webview.SendSequenceMessageRequest.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional uint32 sequence = 2;
   * @return {number}
   */
  proto.webview.SendSequenceMessageRequest.prototype.getSequence = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.SendSequenceMessageRequest} returns this
   */
  proto.webview.SendSequenceMessageRequest.prototype.setSequence = function(value) {
    return jspb.Message.setProto3IntField(this, 2, value);
  };
  
  
  /**
   * optional string message = 3;
   * @return {string}
   */
  proto.webview.SendSequenceMessageRequest.prototype.getMessage = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.SendSequenceMessageRequest} returns this
   */
  proto.webview.SendSequenceMessageRequest.prototype.setMessage = function(value) {
    return jspb.Message.setProto3StringField(this, 3, value);
  };
  
  
  /**
   * optional string url = 4;
   * @return {string}
   */
  proto.webview.SendSequenceMessageRequest.prototype.getUrl = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.SendSequenceMessageRequest} returns this
   */
  proto.webview.SendSequenceMessageRequest.prototype.setUrl = function(value) {
    return jspb.Message.setProto3StringField(this, 4, value);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.SendMessageResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.SendMessageResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.SendMessageResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.SendMessageResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.SendMessageResponse}
   */
  proto.webview.SendMessageResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.SendMessageResponse;
    return proto.webview.SendMessageResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.SendMessageResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.SendMessageResponse}
   */
  proto.webview.SendMessageResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setSuccess(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.SendMessageResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.SendMessageResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.SendMessageResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.SendMessageResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getSuccess();
    if (f) {
      writer.writeBool(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.SendMessageResponse.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.SendMessageResponse} returns this
   */
  proto.webview.SendMessageResponse.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional bool success = 2;
   * @return {boolean}
   */
  proto.webview.SendMessageResponse.prototype.getSuccess = function() {
    return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));
  };
  
  
  /**
   * @param {boolean} value
   * @return {!proto.webview.SendMessageResponse} returns this
   */
  proto.webview.SendMessageResponse.prototype.setSuccess = function(value) {
    return jspb.Message.setProto3BooleanField(this, 2, value);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.ClientResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.ClientResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.ClientResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.ClientResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      markup: jspb.Message.getFieldWithDefault(msg, 2, ""),
      url: jspb.Message.getFieldWithDefault(msg, 3, ""),
      state: jspb.Message.getFieldWithDefault(msg, 4, 0),
      group: jspb.Message.getFieldWithDefault(msg, 5, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.ClientResponse}
   */
  proto.webview.ClientResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.ClientResponse;
    return proto.webview.ClientResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.ClientResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.ClientResponse}
   */
  proto.webview.ClientResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setMarkup(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setUrl(value);
        break;
      case 4:
        var value = /** @type {!proto.webview.ClientState} */ (reader.readEnum());
        msg.setState(value);
        break;
      case 5:
        var value = /** @type {string} */ (reader.readString());
        msg.setGroup(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.ClientResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.ClientResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.ClientResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.ClientResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getMarkup();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = message.getUrl();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = message.getState();
    if (f !== 0.0) {
      writer.writeEnum(
        4,
        f
      );
    }
    f = message.getGroup();
    if (f.length > 0) {
      writer.writeString(
        5,
        f
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.ClientResponse.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.ClientResponse} returns this
   */
  proto.webview.ClientResponse.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string markup = 2;
   * @return {string}
   */
  proto.webview.ClientResponse.prototype.getMarkup = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.ClientResponse} returns this
   */
  proto.webview.ClientResponse.prototype.setMarkup = function(value) {
    return jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * optional string url = 3;
   * @return {string}
   */
  proto.webview.ClientResponse.prototype.getUrl = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.ClientResponse} returns this
   */
  proto.webview.ClientResponse.prototype.setUrl = function(value) {
    return jspb.Message.setProto3StringField(this, 3, value);
  };
  
  
  /**
   * optional ClientState state = 4;
   * @return {!proto.webview.ClientState}
   */
  proto.webview.ClientResponse.prototype.getState = function() {
    return /** @type {!proto.webview.ClientState} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /**
   * @param {!proto.webview.ClientState} value
   * @return {!proto.webview.ClientResponse} returns this
   */
  proto.webview.ClientResponse.prototype.setState = function(value) {
    return jspb.Message.setProto3EnumField(this, 4, value);
  };
  
  
  /**
   * optional string group = 5;
   * @return {string}
   */
  proto.webview.ClientResponse.prototype.getGroup = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.ClientResponse} returns this
   */
  proto.webview.ClientResponse.prototype.setGroup = function(value) {
    return jspb.Message.setProto3StringField(this, 5, value);
  };
  
  
  
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.webview.ClientResponseList.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.ClientResponseList.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.ClientResponseList.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.ClientResponseList} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.ClientResponseList.toObject = function(includeInstance, msg) {
    var f, obj = {
      clientresponsesList: jspb.Message.toObjectList(msg.getClientresponsesList(),
      proto.webview.ClientResponse.toObject, includeInstance)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.ClientResponseList}
   */
  proto.webview.ClientResponseList.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.ClientResponseList;
    return proto.webview.ClientResponseList.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.ClientResponseList} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.ClientResponseList}
   */
  proto.webview.ClientResponseList.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.webview.ClientResponse;
        reader.readMessage(value,proto.webview.ClientResponse.deserializeBinaryFromReader);
        msg.addClientresponses(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.ClientResponseList.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.ClientResponseList.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.ClientResponseList} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.ClientResponseList.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getClientresponsesList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.webview.ClientResponse.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * repeated ClientResponse clientResponses = 1;
   * @return {!Array<!proto.webview.ClientResponse>}
   */
  proto.webview.ClientResponseList.prototype.getClientresponsesList = function() {
    return /** @type{!Array<!proto.webview.ClientResponse>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.webview.ClientResponse, 1));
  };
  
  
  /**
   * @param {!Array<!proto.webview.ClientResponse>} value
   * @return {!proto.webview.ClientResponseList} returns this
  */
  proto.webview.ClientResponseList.prototype.setClientresponsesList = function(value) {
    return jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.webview.ClientResponse=} opt_value
   * @param {number=} opt_index
   * @return {!proto.webview.ClientResponse}
   */
  proto.webview.ClientResponseList.prototype.addClientresponses = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.webview.ClientResponse, opt_index);
  };
  
  
  /**
   * Clears the list making it empty but non-null.
   * @return {!proto.webview.ClientResponseList} returns this
   */
  proto.webview.ClientResponseList.prototype.clearClientresponsesList = function() {
    return this.setClientresponsesList([]);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.UserMessageRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.UserMessageRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.UserMessageRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.UserMessageRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      oid: jspb.Message.getFieldWithDefault(msg, 1, ""),
      id: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.UserMessageRequest}
   */
  proto.webview.UserMessageRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.UserMessageRequest;
    return proto.webview.UserMessageRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.UserMessageRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.UserMessageRequest}
   */
  proto.webview.UserMessageRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setOid(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.UserMessageRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.UserMessageRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.UserMessageRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.UserMessageRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getOid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string oid = 1;
   * @return {string}
   */
  proto.webview.UserMessageRequest.prototype.getOid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.UserMessageRequest} returns this
   */
  proto.webview.UserMessageRequest.prototype.setOid = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string id = 2;
   * @return {string}
   */
  proto.webview.UserMessageRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.UserMessageRequest} returns this
   */
  proto.webview.UserMessageRequest.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.TaskResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.TaskResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.TaskResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.TaskResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      name: jspb.Message.getFieldWithDefault(msg, 1, ""),
      status: jspb.Message.getFieldWithDefault(msg, 2, 0)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.TaskResponse}
   */
  proto.webview.TaskResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.TaskResponse;
    return proto.webview.TaskResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.TaskResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.TaskResponse}
   */
  proto.webview.TaskResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setName(value);
        break;
      case 2:
        var value = /** @type {!proto.webview.TaskStatus} */ (reader.readEnum());
        msg.setStatus(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.TaskResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.TaskResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.TaskResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.TaskResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getName();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getStatus();
    if (f !== 0.0) {
      writer.writeEnum(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string name = 1;
   * @return {string}
   */
  proto.webview.TaskResponse.prototype.getName = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.TaskResponse} returns this
   */
  proto.webview.TaskResponse.prototype.setName = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional TaskStatus status = 2;
   * @return {!proto.webview.TaskStatus}
   */
  proto.webview.TaskResponse.prototype.getStatus = function() {
    return /** @type {!proto.webview.TaskStatus} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /**
   * @param {!proto.webview.TaskStatus} value
   * @return {!proto.webview.TaskResponse} returns this
   */
  proto.webview.TaskResponse.prototype.setStatus = function(value) {
    return jspb.Message.setProto3EnumField(this, 2, value);
  };
  
  
  
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.webview.ConnectionResponse.repeatedFields_ = [2];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.ConnectionResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.ConnectionResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.ConnectionResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.ConnectionResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      taskresponsesList: jspb.Message.toObjectList(msg.getTaskresponsesList(),
      proto.webview.TaskResponse.toObject, includeInstance),
      inuse: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
      hostname: jspb.Message.getFieldWithDefault(msg, 4, ""),
      username: jspb.Message.getFieldWithDefault(msg, 5, ""),
      maxfilereadtime: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0.0),
      totalbytesread: jspb.Message.getFieldWithDefault(msg, 7, 0),
      totalfilesread: jspb.Message.getFieldWithDefault(msg, 8, 0),
      totalreadtime: jspb.Message.getFloatingPointFieldWithDefault(msg, 9, 0.0)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.ConnectionResponse}
   */
  proto.webview.ConnectionResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.ConnectionResponse;
    return proto.webview.ConnectionResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.ConnectionResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.ConnectionResponse}
   */
  proto.webview.ConnectionResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = new proto.webview.TaskResponse;
        reader.readMessage(value,proto.webview.TaskResponse.deserializeBinaryFromReader);
        msg.addTaskresponses(value);
        break;
      case 3:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setInuse(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setHostname(value);
        break;
      case 5:
        var value = /** @type {string} */ (reader.readString());
        msg.setUsername(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setMaxfilereadtime(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readInt64());
        msg.setTotalbytesread(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTotalfilesread(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTotalreadtime(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.ConnectionResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.ConnectionResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.ConnectionResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.ConnectionResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getTaskresponsesList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.webview.TaskResponse.serializeBinaryToWriter
      );
    }
    f = message.getInuse();
    if (f) {
      writer.writeBool(
        3,
        f
      );
    }
    f = message.getHostname();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
    f = message.getUsername();
    if (f.length > 0) {
      writer.writeString(
        5,
        f
      );
    }
    f = message.getMaxfilereadtime();
    if (f !== 0.0) {
      writer.writeDouble(
        6,
        f
      );
    }
    f = message.getTotalbytesread();
    if (f !== 0) {
      writer.writeInt64(
        7,
        f
      );
    }
    f = message.getTotalfilesread();
    if (f !== 0) {
      writer.writeInt32(
        8,
        f
      );
    }
    f = message.getTotalreadtime();
    if (f !== 0.0) {
      writer.writeDouble(
        9,
        f
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.webview.ConnectionResponse.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.ConnectionResponse} returns this
   */
  proto.webview.ConnectionResponse.prototype.setId = function(value) {
    return jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * repeated TaskResponse taskResponses = 2;
   * @return {!Array<!proto.webview.TaskResponse>}
   */
  proto.webview.ConnectionResponse.prototype.getTaskresponsesList = function() {
    return /** @type{!Array<!proto.webview.TaskResponse>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.webview.TaskResponse, 2));
  };
  
  
  /**
   * @param {!Array<!proto.webview.TaskResponse>} value
   * @return {!proto.webview.ConnectionResponse} returns this
  */
  proto.webview.ConnectionResponse.prototype.setTaskresponsesList = function(value) {
    return jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.webview.TaskResponse=} opt_value
   * @param {number=} opt_index
   * @return {!proto.webview.TaskResponse}
   */
  proto.webview.ConnectionResponse.prototype.addTaskresponses = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.webview.TaskResponse, opt_index);
  };
  
  
  /**
   * Clears the list making it empty but non-null.
   * @return {!proto.webview.ConnectionResponse} returns this
   */
  proto.webview.ConnectionResponse.prototype.clearTaskresponsesList = function() {
    return this.setTaskresponsesList([]);
  };
  
  
  /**
   * optional bool inUse = 3;
   * @return {boolean}
   */
  proto.webview.ConnectionResponse.prototype.getInuse = function() {
    return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));
  };
  
  
  /**
   * @param {boolean} value
   * @return {!proto.webview.ConnectionResponse} returns this
   */
  proto.webview.ConnectionResponse.prototype.setInuse = function(value) {
    return jspb.Message.setProto3BooleanField(this, 3, value);
  };
  
  
  /**
   * optional string hostName = 4;
   * @return {string}
   */
  proto.webview.ConnectionResponse.prototype.getHostname = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.ConnectionResponse} returns this
   */
  proto.webview.ConnectionResponse.prototype.setHostname = function(value) {
    return jspb.Message.setProto3StringField(this, 4, value);
  };
  
  
  /**
   * optional string userName = 5;
   * @return {string}
   */
  proto.webview.ConnectionResponse.prototype.getUsername = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
  };
  
  
  /**
   * @param {string} value
   * @return {!proto.webview.ConnectionResponse} returns this
   */
  proto.webview.ConnectionResponse.prototype.setUsername = function(value) {
    return jspb.Message.setProto3StringField(this, 5, value);
  };
  
  
  /**
   * optional double maxFileReadTime = 6;
   * @return {number}
   */
  proto.webview.ConnectionResponse.prototype.getMaxfilereadtime = function() {
    return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0.0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.ConnectionResponse} returns this
   */
  proto.webview.ConnectionResponse.prototype.setMaxfilereadtime = function(value) {
    return jspb.Message.setProto3FloatField(this, 6, value);
  };
  
  
  /**
   * optional int64 totalBytesRead = 7;
   * @return {number}
   */
  proto.webview.ConnectionResponse.prototype.getTotalbytesread = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.ConnectionResponse} returns this
   */
  proto.webview.ConnectionResponse.prototype.setTotalbytesread = function(value) {
    return jspb.Message.setProto3IntField(this, 7, value);
  };
  
  
  /**
   * optional int32 totalFilesRead = 8;
   * @return {number}
   */
  proto.webview.ConnectionResponse.prototype.getTotalfilesread = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.ConnectionResponse} returns this
   */
  proto.webview.ConnectionResponse.prototype.setTotalfilesread = function(value) {
    return jspb.Message.setProto3IntField(this, 8, value);
  };
  
  
  /**
   * optional double totalReadTime = 9;
   * @return {number}
   */
  proto.webview.ConnectionResponse.prototype.getTotalreadtime = function() {
    return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 9, 0.0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.ConnectionResponse} returns this
   */
  proto.webview.ConnectionResponse.prototype.setTotalreadtime = function(value) {
    return jspb.Message.setProto3FloatField(this, 9, value);
  };
  
  
  
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.webview.ServerResponse.repeatedFields_ = [5];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.webview.ServerResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.webview.ServerResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.webview.ServerResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.ServerResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      workingset: jspb.Message.getFieldWithDefault(msg, 1, 0),
      peakworkingset: jspb.Message.getFieldWithDefault(msg, 2, 0),
      threads: jspb.Message.getFieldWithDefault(msg, 3, 0),
      handles: jspb.Message.getFieldWithDefault(msg, 4, 0),
      connectionresponsesList: jspb.Message.toObjectList(msg.getConnectionresponsesList(),
      proto.webview.ConnectionResponse.toObject, includeInstance),
      totalprocessortime: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0.0)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.webview.ServerResponse}
   */
  proto.webview.ServerResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.webview.ServerResponse;
    return proto.webview.ServerResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.webview.ServerResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.webview.ServerResponse}
   */
  proto.webview.ServerResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt64());
        msg.setWorkingset(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readInt64());
        msg.setPeakworkingset(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setThreads(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setHandles(value);
        break;
      case 5:
        var value = new proto.webview.ConnectionResponse;
        reader.readMessage(value,proto.webview.ConnectionResponse.deserializeBinaryFromReader);
        msg.addConnectionresponses(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTotalprocessortime(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.webview.ServerResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.webview.ServerResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.webview.ServerResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.webview.ServerResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getWorkingset();
    if (f !== 0) {
      writer.writeInt64(
        1,
        f
      );
    }
    f = message.getPeakworkingset();
    if (f !== 0) {
      writer.writeInt64(
        2,
        f
      );
    }
    f = message.getThreads();
    if (f !== 0) {
      writer.writeInt32(
        3,
        f
      );
    }
    f = message.getHandles();
    if (f !== 0) {
      writer.writeInt32(
        4,
        f
      );
    }
    f = message.getConnectionresponsesList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        5,
        f,
        proto.webview.ConnectionResponse.serializeBinaryToWriter
      );
    }
    f = message.getTotalprocessortime();
    if (f !== 0.0) {
      writer.writeDouble(
        6,
        f
      );
    }
  };
  
  
  /**
   * optional int64 workingSet = 1;
   * @return {number}
   */
  proto.webview.ServerResponse.prototype.getWorkingset = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.ServerResponse} returns this
   */
  proto.webview.ServerResponse.prototype.setWorkingset = function(value) {
    return jspb.Message.setProto3IntField(this, 1, value);
  };
  
  
  /**
   * optional int64 peakWorkingSet = 2;
   * @return {number}
   */
  proto.webview.ServerResponse.prototype.getPeakworkingset = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.ServerResponse} returns this
   */
  proto.webview.ServerResponse.prototype.setPeakworkingset = function(value) {
    return jspb.Message.setProto3IntField(this, 2, value);
  };
  
  
  /**
   * optional int32 threads = 3;
   * @return {number}
   */
  proto.webview.ServerResponse.prototype.getThreads = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.ServerResponse} returns this
   */
  proto.webview.ServerResponse.prototype.setThreads = function(value) {
    return jspb.Message.setProto3IntField(this, 3, value);
  };
  
  
  /**
   * optional int32 handles = 4;
   * @return {number}
   */
  proto.webview.ServerResponse.prototype.getHandles = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.ServerResponse} returns this
   */
  proto.webview.ServerResponse.prototype.setHandles = function(value) {
    return jspb.Message.setProto3IntField(this, 4, value);
  };
  
  
  /**
   * repeated ConnectionResponse connectionResponses = 5;
   * @return {!Array<!proto.webview.ConnectionResponse>}
   */
  proto.webview.ServerResponse.prototype.getConnectionresponsesList = function() {
    return /** @type{!Array<!proto.webview.ConnectionResponse>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.webview.ConnectionResponse, 5));
  };
  
  
  /**
   * @param {!Array<!proto.webview.ConnectionResponse>} value
   * @return {!proto.webview.ServerResponse} returns this
  */
  proto.webview.ServerResponse.prototype.setConnectionresponsesList = function(value) {
    return jspb.Message.setRepeatedWrapperField(this, 5, value);
  };
  
  
  /**
   * @param {!proto.webview.ConnectionResponse=} opt_value
   * @param {number=} opt_index
   * @return {!proto.webview.ConnectionResponse}
   */
  proto.webview.ServerResponse.prototype.addConnectionresponses = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.webview.ConnectionResponse, opt_index);
  };
  
  
  /**
   * Clears the list making it empty but non-null.
   * @return {!proto.webview.ServerResponse} returns this
   */
  proto.webview.ServerResponse.prototype.clearConnectionresponsesList = function() {
    return this.setConnectionresponsesList([]);
  };
  
  
  /**
   * optional double totalProcessorTime = 6;
   * @return {number}
   */
  proto.webview.ServerResponse.prototype.getTotalprocessortime = function() {
    return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0.0));
  };
  
  
  /**
   * @param {number} value
   * @return {!proto.webview.ServerResponse} returns this
   */
  proto.webview.ServerResponse.prototype.setTotalprocessortime = function(value) {
    return jspb.Message.setProto3FloatField(this, 6, value);
  };
  
  
  /**
   * @enum {number}
   */
  proto.webview.ClientState = {
    CONNECTED: 0,
    SHUTTINGDOWN: 1
  };
  
  /**
   * @enum {number}
   */
  proto.webview.TaskStatus = {
    CREATED: 0,
    WAITINGFORACTIVATION: 1,
    WAITINGTORUN: 2,
    RUNNING: 3,
    WAITINGFORCHILDRENTOCOMPLETE: 4,
    RANTOCOMPLETION: 5,
    CANCELED: 6,
    FAULTED: 7
  };
  
  goog.object.extend(exports, proto.webview);
  