A resource loader that loads files from a sandboxed directory. More...
#include "donner/svg/resources/SandboxedFileResourceLoader.h"
Public Member Functions | |
| SandboxedFileResourceLoader (const std::filesystem::path &root, const std::filesystem::path &documentPath, size_t maximumResourceSize=kDefaultMaximumResourceSize) | |
| Create a new resource loader that loads files sandboxed within the given root directory. | |
| SandboxedFileResourceLoader (const SandboxedFileResourceLoader &)=delete | |
| SandboxedFileResourceLoader & | operator= (const SandboxedFileResourceLoader &)=delete |
| SandboxedFileResourceLoader (SandboxedFileResourceLoader &&)=delete | |
| SandboxedFileResourceLoader & | operator= (SandboxedFileResourceLoader &&)=delete |
| ~SandboxedFileResourceLoader () override | |
| Destructor. | |
| std::variant< std::vector< uint8_t >, ResourceLoaderError > | fetchExternalResource (std::string_view url) override |
| Fetch external resource from a given URL. | |
| Public Member Functions inherited from donner::svg::ResourceLoaderInterface | |
| ResourceLoaderInterface ()=default | |
| Default constructor. | |
| ResourceLoaderInterface (const ResourceLoaderInterface &)=delete | |
| ResourceLoaderInterface & | operator= (const ResourceLoaderInterface &)=delete |
| ResourceLoaderInterface (ResourceLoaderInterface &&)=delete | |
| ResourceLoaderInterface & | operator= (ResourceLoaderInterface &&)=delete |
| virtual | ~ResourceLoaderInterface ()=default |
| Destructor. | |
A resource loader that loads files from a sandboxed directory.
|
explicit |
Create a new resource loader that loads files sandboxed within the given root directory.
Relative resource paths resolve from the documentPath directory, which may lie outside root. The document path is trusted configuration; every fetched resource must remain within root, including after resolving ".." components.
| root | Sandbox directory, loads outside of this directory will be rejected. |
| documentPath | Path to the document being loaded, used to resolve relative paths. |
| maximumResourceSize | Maximum number of bytes read from one resource. |
|
overridevirtual |
Fetch external resource from a given URL.
| url | URL of the external resource. |
Implements donner::svg::ResourceLoaderInterface.