Skip to main content

blitz_dom/
config.rs

1use crate::HtmlParserProvider;
2use blitz_traits::{
3    navigation::NavigationProvider,
4    net::NetProvider,
5    shell::{ShellProvider, Viewport},
6};
7use parley::FontContext;
8use std::sync::Arc;
9use style::media_queries::MediaType;
10
11/// Options used when constructing a [`BaseDocument`](crate::BaseDocument)
12#[derive(Default)]
13pub struct DocumentConfig {
14    /// The initial `Viewport`
15    pub viewport: Option<Viewport>,
16    /// The base url which relative URLs are resolved against
17    pub base_url: Option<String>,
18    /// User Agent stylesheets
19    pub ua_stylesheets: Option<Vec<String>>,
20    /// Net provider to handle network requests for resources
21    pub net_provider: Option<Arc<dyn NetProvider>>,
22    /// Navigation provider to handle link clicks and form submissions
23    pub navigation_provider: Option<Arc<dyn NavigationProvider>>,
24    /// Shell provider to redraw requests, clipboard, etc
25    pub shell_provider: Option<Arc<dyn ShellProvider>>,
26    /// HTML parser provider. Used to parse HTML for setInnerHTML
27    pub html_parser_provider: Option<Arc<dyn HtmlParserProvider>>,
28    /// Parley `FontContext`
29    pub font_ctx: Option<FontContext>,
30    /// The CSS media type used to evaluate `@media` rules.
31    /// Defaults to [`MediaType::screen`].
32    pub media_type: Option<MediaType>,
33}