Serve plugin icon
Changed onServes the icon for {RepoName}, whether or not that plugin is installed. Resolved in three tiers: 1. a local icon.png in the plugin's directory; 2. the iconURL out of the plugin's own installed pluginInfo.json; 3. the iconURL out of the listed pluginInfo.json for {RepoName}, for plugins that are listed but not installed (the Browse tab). Serving these same-origin is what lets the Plugins page show icons at all -- raw.githubusercontent.com is allow-listed in FPP's CSP connect-src, not img-src. The client passes only a repo name: tiers 2 and 3 both run their URL past PluginIconURLIsAllowed() before fetching, so the set of things this endpoint can be made to request is bounded by the plugin list and by that allow-list, not by the caller.
Request
- Base URL/ (relative, and the document was published on a file host, not at the API’s origin)
- URL/api/plugin/{RepoName}/icon
- Authnone declared
Response
Image data
Changes
- breaking
removed the media type
image/pngfor the response with the status - warning
deleted the
pathrequest parameterRepoName - info
removed the non-success response with the status
- breaking
- info
added the non-success response with the status
- info