code: def _ParseFileHeader(self, file_object):
      
      file_header_map = self._GetDataTypeMap(
          'chrome_cache_data_block_file_header')
  
      try:
        file_header, _ = self._ReadStructureFromFileObject(
            file_object, 0, file_header_map)
      except (ValueError, errors.ParseError) as exception:
        raise errors.ParseError(
            'Unable to parse data block file header with error: {0!s}'.format(
                exception))
  
      if file_header.signature != self._FILE_SIGNATURE:
        raise errors.ParseError('Unsupported data block file signature')
  
      format_version = '{0:d}.{1:d}'.format(
          file_header.major_version, file_header.minor_version)
      if format_version not in ('2.0', '2.1'):
        raise errors.ParseError(
            'Unsupported data block file format version: {0:s}'.format(
                format_version))
  
      if file_header.block_size not in (256, 1024, 4096):
        raise errors.ParseError(
            'Unsupported data block file block size: {0:d}'.format(
                file_header.block_size))
docs: Parses the file header.
  
      Args:
        file_object (dfvfs.FileIO): a file-like object to parse.
  
      Raises:
        ParseError: if the file header cannot be read.