#8539 Config preferences backend restructure

This commit is contained in:
Peter Hall 2019-02-14 12:53:59 +00:00
parent 34fda66dfa
commit 8bfd4dc1e2
53 changed files with 1748 additions and 680 deletions

View file

@ -2586,7 +2586,7 @@ class CGConstructorEnabled(CGAbstractMethod):
pref = iface.getExtendedAttribute("Pref")
if pref:
assert isinstance(pref, list) and len(pref) == 1
conditions.append('PREFS.get("%s").as_boolean().unwrap_or(false)' % pref[0])
conditions.append('prefs::pref_map().get("%s").as_bool().unwrap_or(false)' % pref[0])
func = iface.getExtendedAttribute("Func")
if func:
@ -5977,7 +5977,8 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
'crate::dom::globalscope::GlobalScope',
'crate::mem::malloc_size_of_including_raw_self',
'libc',
'servo_config::prefs::PREFS',
'servo_config::pref',
'servo_config::prefs',
'std::borrow::ToOwned',
'std::cmp',
'std::mem',

View file

@ -6,7 +6,7 @@
use js::jsapi::JSContext;
use js::rust::HandleObject;
use servo_config::prefs::PREFS;
use servo_config::prefs;
/// A container with a condition.
pub struct Guard<T: Clone + Copy> {
@ -48,7 +48,7 @@ pub enum Condition {
impl Condition {
unsafe fn is_satisfied(&self, cx: *mut JSContext, obj: HandleObject) -> bool {
match *self {
Condition::Pref(name) => PREFS.get(name).as_boolean().unwrap_or(false),
Condition::Pref(name) => prefs::pref_map().get(name).as_bool().unwrap_or(false),
Condition::Func(f) => f(cx, obj),
Condition::Satisfied => true,
}