anchor.diff:        if (readAdbMessage.dataLength > 0) {
           chrome.GenericTransferInfo readDataInfo =
               new chrome.GenericTransferInfo()
  -            ..direction = inDescriptor.direction
  -            ..endpoint = inDescriptor.address
  -            ..length = readAdbMessage.dataLength;
  -
  -        return chrome.usb.bulkTransfer(adbConnectionHandle, readDataInfo)
  -            .then((chrome.TransferResultInfo readDataResult) {
  +                ..direction = inDescriptor.direction
  +                ..endpoint = inDescriptor.address
  +                ..length = readAdbMessage.dataLength;
  +
  +        return chrome.usb.bulkTransfer(adbConnectionHandle, readDataInfo).then(
  +            (chrome.TransferResultInfo readDataResult) {
             if (readDataResult.resultCode != 0) {
               return new Future.error(readDataResult);
             }
  
positive.code:         chrome.EnumerateDevicesAndRequestAccessOptions opts =
              new chrome.EnumerateDevicesAndRequestAccessOptions(
                  vendorId: device.vendorId, productId: device.productId);
          return chrome.usb.findDevices(opts)
              .then((List<chrome.ConnectionHandle> connections) {
                if (connections.length == 0) {
                  return new Future.error('no-connection');
                } else {
                  // It's a valid device. Use it as the result.
                  resultDevice = device;
                }
              });
        }).then((_) {
          return resultDevice;
        });
  
negative.code:         ..length = arrayBuffer.getBytes().length
          ..data = arrayBuffer;
  
      return chrome.usb.bulkTransfer(adbConnectionHandle, transferInfo).then(
          (chrome.TransferResultInfo result) {
        if (result.resultCode != 0) {
          return new Future.error('Failed to send');
        } else {
  