Skip to content

perf(marketplace): stream SHA256 + zip extract (no dual full buffers) #418

Description

@ZhuchkaTriplesix

Parent

Part of #414

Problem

SafeZipExtractor.readBoundedBytes uses file.readAsBytes() (up to 100 MiB compressed). Marketplace/sideload then SHA256 the whole buffer and ZipDecoder().decodeBytes, keeping entry contents (uncompressed limit up to 500 MiB). Peak ≈ compressed + decoded + per-file copies.

Updater already streams SHA256 — marketplace should match.

Evidence

  • lib/core/security/safe_zip_extractor.dart (~43–88)
  • lib/core/market/http_marketplace_repository.dart (~174–221)
  • lib/core/extensions/local_extension_installer.dart

Acceptance

Suggested fix

Align with updater checksum streaming; decode/write on a background isolate; write entries incrementally.

Metadata

Metadata

Labels

coreCore library logic and servicesmarketplaceExtensions marketplace, ExtensionManifestperformanceTheme parser epic label: performance

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions