PURL Type Definition: chrome-extension
- Type Name: Chrome Browser Extensions
- Description: Chrome Browser Extensions. Note: there are currently no officially documented APIs, further there appears to be no way to query different versions of a package - there only seems to be responses on the latest version. To this end the version component of a chrome purl can be optional. Two known data sources are a sitemap which can be crawled to discover (some) extensions at https://chromewebstore.google.com/sitemap, and an 'updatecheck' API which you can read about here https://github.com/Rob--W/crxviewer , and perhaps here https://github.com/chromium/chromium/blob/main/docs/updater/protocol_3_1.md
- Schema ID:
https://packageurl.org/types/chrome-definition.json
PURL Syntax
The structure of a PURL for this package type is:
pkg:chrome-extension/<name>@<version>?<qualifiers>#<subpath>
Repository Information
- Use Repository: Yes
- Default Repository URL: https://chromewebstore.google.com/
- Note: There is no documented API, only a sitemap and 'updatecheck' endpoints.
Namespace definition
- Requirement: Prohibited
- Note:
There is no namespace
Name definition
- Requirement: Required
- Permitted Characters:
^[a-p]{32}$ - Native Label: extension_id
- Note:
The name is 32 characters in the range a-p (base16-encoded with letters instead of hex digits) and is case insensitive. This is not the same as the display name which is human readable and may vary with locale.
Version definition
- Requirement: Optional
- Permitted Characters:
^\d+(\.\d+){0,3}$ - Native Label: version
- Note:
The chrome extension version is semver-like but 1-4 segments. See https://developer.chrome.com/docs/extensions/reference/manifest/version
Examples
pkg:chrome-extension/hlepfoohegkhhmjieoechaddaejaokhf@25.7.1pkg:chrome-extension/dncgedbnidfkppmdgfgidcepclnokpkb@6.0.2.3611pkg:chrome-extension/kanfjhdeebkfgkbmnfknhejpadhlmiab@0.6pkg:chrome-extension/dlpngalgnefjeiefhmpklpfiohadpglk@1pkg:chrome-extension/dlpngalgnefjeiefhmpklpfiohadpglk