mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
servoshell: Read prefs.json from bundle on OHOS (#35581)
* Allows to read the prefs.json from the hap bundle on OHOS. Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> * incorporate suggestions Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> * incoroporate requested changes Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> --------- Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
This commit is contained in:
parent
4f8d816385
commit
5fa014d389
2 changed files with 17 additions and 3 deletions
|
@ -8,7 +8,7 @@ use std::ptr::NonNull;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
use dpi::PhysicalSize;
|
use dpi::PhysicalSize;
|
||||||
use log::{debug, info};
|
use log::{debug, info, warn};
|
||||||
use raw_window_handle::{
|
use raw_window_handle::{
|
||||||
DisplayHandle, OhosDisplayHandle, OhosNdkWindowHandle, RawDisplayHandle, RawWindowHandle,
|
DisplayHandle, OhosDisplayHandle, OhosNdkWindowHandle, RawDisplayHandle, RawWindowHandle,
|
||||||
WindowHandle,
|
WindowHandle,
|
||||||
|
@ -40,7 +40,7 @@ pub fn init(
|
||||||
info!("Entered simpleservo init function");
|
info!("Entered simpleservo init function");
|
||||||
crate::init_crypto();
|
crate::init_crypto();
|
||||||
let resource_dir = PathBuf::from(&options.resource_dir).join("servo");
|
let resource_dir = PathBuf::from(&options.resource_dir).join("servo");
|
||||||
resources::set(Box::new(ResourceReaderInstance::new(resource_dir)));
|
resources::set(Box::new(ResourceReaderInstance::new(resource_dir.clone())));
|
||||||
|
|
||||||
// It would be nice if `from_cmdline_args()` could accept str slices, to avoid allocations here.
|
// It would be nice if `from_cmdline_args()` could accept str slices, to avoid allocations here.
|
||||||
// Then again, this code could and maybe even should be disabled in production builds.
|
// Then again, this code could and maybe even should be disabled in production builds.
|
||||||
|
@ -53,6 +53,15 @@ pub fn init(
|
||||||
);
|
);
|
||||||
debug!("Servo commandline args: {:?}", args);
|
debug!("Servo commandline args: {:?}", args);
|
||||||
|
|
||||||
|
let _ = crate::prefs::DEFAULT_CONFIG_DIR
|
||||||
|
.set(resource_dir)
|
||||||
|
.inspect_err(|e| {
|
||||||
|
warn!(
|
||||||
|
"Default Prefs Dir already previously filled. Got error {}",
|
||||||
|
e.display()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
let (opts, preferences, servoshell_preferences) = match parse_command_line_arguments(args) {
|
let (opts, preferences, servoshell_preferences) = match parse_command_line_arguments(args) {
|
||||||
ArgumentParsingResult::ContentProcess(..) => {
|
ArgumentParsingResult::ContentProcess(..) => {
|
||||||
unreachable!("OHOS does not have support for multiprocess yet.")
|
unreachable!("OHOS does not have support for multiprocess yet.")
|
||||||
|
|
|
@ -6,6 +6,8 @@ use std::collections::HashMap;
|
||||||
use std::fs::{read_to_string, File};
|
use std::fs::{read_to_string, File};
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
|
#[cfg(any(target_os = "android", target_env = "ohos"))]
|
||||||
|
use std::sync::OnceLock;
|
||||||
use std::{env, fs, process};
|
use std::{env, fs, process};
|
||||||
|
|
||||||
use euclid::Size2D;
|
use euclid::Size2D;
|
||||||
|
@ -90,9 +92,12 @@ pub fn default_config_dir() -> Option<PathBuf> {
|
||||||
Some(config_dir)
|
Some(config_dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Overrides the default preference dir
|
||||||
|
#[cfg(any(target_os = "android", target_env = "ohos"))]
|
||||||
|
pub(crate) static DEFAULT_CONFIG_DIR: OnceLock<PathBuf> = OnceLock::new();
|
||||||
#[cfg(any(target_os = "android", target_env = "ohos"))]
|
#[cfg(any(target_os = "android", target_env = "ohos"))]
|
||||||
pub fn default_config_dir() -> Option<PathBuf> {
|
pub fn default_config_dir() -> Option<PathBuf> {
|
||||||
None
|
DEFAULT_CONFIG_DIR.get().cloned()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue