mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Support package-prefs.json for libsimpleservo
This commit is contained in:
parent
b17a302356
commit
b8d6b1d52d
6 changed files with 47 additions and 12 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -5408,6 +5408,7 @@ dependencies = [
|
||||||
"libloading 0.5.2",
|
"libloading 0.5.2",
|
||||||
"libservo",
|
"libservo",
|
||||||
"log",
|
"log",
|
||||||
|
"serde_json",
|
||||||
"servo-media",
|
"servo-media",
|
||||||
"surfman",
|
"surfman",
|
||||||
"webxr",
|
"webxr",
|
||||||
|
|
|
@ -30,6 +30,7 @@ libloading = "0.5"
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
gl_generator = "0.14"
|
gl_generator = "0.14"
|
||||||
|
serde_json = "1.0"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
debugmozjs = ["libservo/debugmozjs"]
|
debugmozjs = ["libservo/debugmozjs"]
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
use gl_generator::{Api, Fallbacks, Profile, Registry};
|
use gl_generator::{Api, Fallbacks, Profile, Registry};
|
||||||
|
use serde_json::{self, Value};
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
@ -40,4 +41,30 @@ fn main() {
|
||||||
.write_bindings(gl_generator::StructGenerator, &mut file)
|
.write_bindings(gl_generator::StructGenerator, &mut file)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Merge prefs.json and package-prefs.json
|
||||||
|
let mut default_prefs = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
||||||
|
default_prefs.push("../../../resources/prefs.json");
|
||||||
|
let mut prefs: Value = serde_json::from_reader(File::open(&default_prefs).unwrap()).unwrap();
|
||||||
|
let mut pkg_prefs = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
||||||
|
pkg_prefs.push("../../../resources/package-prefs.json");
|
||||||
|
let pkg_prefs: Value = serde_json::from_reader(File::open(&pkg_prefs).unwrap()).unwrap();
|
||||||
|
if target.contains("uwp") {
|
||||||
|
// Assuming Hololens build
|
||||||
|
let to_merge = pkg_prefs
|
||||||
|
.as_object()
|
||||||
|
.unwrap()
|
||||||
|
.get("hololens")
|
||||||
|
.unwrap()
|
||||||
|
.as_object()
|
||||||
|
.unwrap();
|
||||||
|
for (key, value) in to_merge.iter() {
|
||||||
|
prefs
|
||||||
|
.as_object_mut()
|
||||||
|
.unwrap()
|
||||||
|
.insert(key.clone(), value.clone());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let file = File::create(&dest.join("prefs.json")).unwrap();
|
||||||
|
serde_json::to_writer(file, &prefs).unwrap();
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,22 +227,20 @@ pub fn init(
|
||||||
) -> Result<(), &'static str> {
|
) -> Result<(), &'static str> {
|
||||||
resources::set(Box::new(ResourceReaderInstance::new()));
|
resources::set(Box::new(ResourceReaderInstance::new()));
|
||||||
|
|
||||||
let mut args = mem::replace(&mut init_opts.args, vec![]);
|
set_pref!(
|
||||||
if !args.is_empty() {
|
gfx.subpixel_text_antialiasing.enabled,
|
||||||
// opts::from_cmdline_args expects the first argument to be the binary name.
|
init_opts.enable_subpixel_text_antialiasing
|
||||||
args.insert(0, "servo".to_string());
|
);
|
||||||
|
|
||||||
set_pref!(
|
|
||||||
gfx.subpixel_text_antialiasing.enabled,
|
|
||||||
init_opts.enable_subpixel_text_antialiasing
|
|
||||||
);
|
|
||||||
opts::from_cmdline_args(Options::new(), &args);
|
|
||||||
}
|
|
||||||
|
|
||||||
if let Some(prefs) = init_opts.prefs {
|
if let Some(prefs) = init_opts.prefs {
|
||||||
add_user_prefs(prefs);
|
add_user_prefs(prefs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let mut args = mem::replace(&mut init_opts.args, vec![]);
|
||||||
|
// opts::from_cmdline_args expects the first argument to be the binary name.
|
||||||
|
args.insert(0, "servo".to_string());
|
||||||
|
opts::from_cmdline_args(Options::new(), &args);
|
||||||
|
|
||||||
let pref_url = ServoUrl::parse(&pref!(shell.homepage)).ok();
|
let pref_url = ServoUrl::parse(&pref!(shell.homepage)).ok();
|
||||||
let blank_url = ServoUrl::parse("about:blank").ok();
|
let blank_url = ServoUrl::parse("about:blank").ok();
|
||||||
|
|
||||||
|
@ -943,7 +941,7 @@ impl ResourceReaderInstance {
|
||||||
impl ResourceReaderMethods for ResourceReaderInstance {
|
impl ResourceReaderMethods for ResourceReaderInstance {
|
||||||
fn read(&self, res: Resource) -> Vec<u8> {
|
fn read(&self, res: Resource) -> Vec<u8> {
|
||||||
Vec::from(match res {
|
Vec::from(match res {
|
||||||
Resource::Preferences => &include_bytes!("../../../../resources/prefs.json")[..],
|
Resource::Preferences => &include_bytes!(concat!(env!("OUT_DIR"), "/prefs.json"))[..],
|
||||||
Resource::HstsPreloadList => {
|
Resource::HstsPreloadList => {
|
||||||
&include_bytes!("../../../../resources/hsts_preload.json")[..]
|
&include_bytes!("../../../../resources/hsts_preload.json")[..]
|
||||||
},
|
},
|
||||||
|
|
|
@ -5,6 +5,12 @@
|
||||||
"linux": {},
|
"linux": {},
|
||||||
"android": {},
|
"android": {},
|
||||||
"windows": {},
|
"windows": {},
|
||||||
|
"hololens": {
|
||||||
|
"_comment": "settings specific to Hololens/UWP builds",
|
||||||
|
"devtools.server.enabled": true,
|
||||||
|
"dom.webxr.enabled": true,
|
||||||
|
"shell.homepage": "https://servo.org/hl-home/"
|
||||||
|
},
|
||||||
"vr": {
|
"vr": {
|
||||||
"_comment": "settings specific to VR builds",
|
"_comment": "settings specific to VR builds",
|
||||||
"dom.webvr.enabled": true,
|
"dom.webvr.enabled": true,
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
{
|
{
|
||||||
|
"devtools.server.enabled": false,
|
||||||
|
"devtools.server.port": 0,
|
||||||
"dom.bluetooth.enabled": false,
|
"dom.bluetooth.enabled": false,
|
||||||
"dom.bluetooth.testing.enabled": false,
|
"dom.bluetooth.testing.enabled": false,
|
||||||
"dom.canvas_capture.enabled": false,
|
"dom.canvas_capture.enabled": false,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue