> // DEPRECATED, use Value::FindKey(key) instead.
atom/common/asar/archive.cc
LOG(ERROR) << "Failed to parse header size from " << path_.value();
    return false;
  }
  buf.resize(size);
  {
    base::ThreadRestrictions::ScopedAllowIO allow_io;
    len = file_.ReadAtCurrentPos(buf.data(), buf.size());
  }
  if (len != static_cast<int>(buf.size())) {
    PLOG(ERROR) << "Failed to read header from " << path_.value();
    return false;
  }
  std::string header;
  if (!base::PickleIterator(base::Pickle(buf.data(), buf.size()))
           .ReadString(&header)) {
    LOG(ERROR) << "Failed to parse header from " << path_.value();
    return false;
  }
  std::string error;
  base::JSONReader reader;
  std::unique_ptr<base::Value> value(reader.ReadToValue(header));
  if (!value || !value->is_dict()) {
    LOG(ERROR) << "Failed to parse header: " << error;
    return false;
  }
  header_size_ = 8 + size;
  header_.reset(static_cast<base::DictionaryValue*>(value.release()));
  return true;
}
bool Archive::GetFileInfo(const base::FilePath& path, FileInfo* info) {