servo_default_resources/
lib.rs

1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
5use std::path::PathBuf;
6
7use embedder_traits::resources::{Resource, ResourceReaderMethods};
8
9/// A default resource reader that provides baked in resources.
10pub struct DefaultResourceReader;
11
12impl ResourceReaderMethods for DefaultResourceReader {
13    fn sandbox_access_files(&self) -> Vec<PathBuf> {
14        vec![]
15    }
16    fn sandbox_access_files_dirs(&self) -> Vec<PathBuf> {
17        vec![]
18    }
19    fn read(&self, file: Resource) -> Vec<u8> {
20        match file {
21            Resource::BluetoothBlocklist => &include_bytes!("resources/gatt_blocklist.txt")[..],
22            Resource::DomainList => &include_bytes!("resources/public_domains.txt")[..],
23            Resource::HstsPreloadList => &include_bytes!("resources/hsts_preload.fstmap")[..],
24            Resource::BadCertHTML => &include_bytes!("resources/badcert.html")[..],
25            Resource::NetErrorHTML => &include_bytes!("resources/neterror.html")[..],
26            Resource::BrokenImageIcon => &include_bytes!("resources/rippy.png")[..],
27            Resource::CrashHTML => &include_bytes!("resources/crash.html")[..],
28            Resource::DirectoryListingHTML => {
29                &include_bytes!("resources/directory-listing.html")[..]
30            },
31            Resource::AboutMemoryHTML => &include_bytes!("resources/about-memory.html")[..],
32            Resource::DebuggerJS => &include_bytes!("resources/debugger.js")[..],
33            Resource::JsonViewerHTML => &include_bytes!("resources/json-viewer.html")[..],
34        }
35        .to_owned()
36    }
37}
38
39embedder_traits::submit_resource_reader!(&DefaultResourceReader);