From: Mike Hommey Date: Sat, 21 Jun 2008 00:48:46 +0000 (+0200) Subject: Allow .js preference files to set locked prefs with lockPref() X-Git-Tag: archive/raspbian/78.15.0esr-1_deb11u1+rpi1^2~27 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d7ae3a8b1bec717e1c6800b87c87f064f19a6952;p=firefox-esr.git Allow .js preference files to set locked prefs with lockPref() Gbp-Pq: Topic fixes Gbp-Pq: Name Allow-.js-preference-files-to-set-locked-prefs-with-.patch --- diff --git a/modules/libpref/parser/src/lib.rs b/modules/libpref/parser/src/lib.rs index a8c5b6b317a..5677c9e53be 100644 --- a/modules/libpref/parser/src/lib.rs +++ b/modules/libpref/parser/src/lib.rs @@ -10,8 +10,9 @@ //! //! = * //! = "(" "," ")" ";" -//! = "user_pref" | "pref" | "sticky_pref" // in default pref files +//! = "user_pref" | "pref" | "sticky_pref" | "lockPref" // in default pref files //! = "user_pref" // in user pref files +//! = "user_pref" | "pref" | "sticky_pref | lockPref" //! = //! = | "true" | "false" | //! = ? @@ -169,6 +170,7 @@ enum Token { // Keywords Pref, // pref StickyPref, // sticky_pref + LockPref, // lockPref UserPref, // user_pref True, // true False, // false @@ -291,7 +293,7 @@ struct KeywordInfo { token: Token, } -const KEYWORD_INFOS: [KeywordInfo; 7] = [ +const KEYWORD_INFOS: [KeywordInfo; 8] = [ // These are ordered by frequency. KeywordInfo { string: b"pref", @@ -321,6 +323,10 @@ const KEYWORD_INFOS: [KeywordInfo; 7] = [ string: b"sticky_pref", token: Token::StickyPref, }, + KeywordInfo { + string: b"lockPref", + token: Token::LockPref, + }, ]; struct Parser<'t> { @@ -373,14 +379,15 @@ impl<'t> Parser<'t> { // this will be either the first token of a new pref, or EOF. loop { // - let (pref_value_kind, mut is_sticky) = match token { + let (pref_value_kind, mut is_sticky, mut is_locked) = match token { Token::Pref if self.kind == PrefValueKind::Default => { - (PrefValueKind::Default, false) + (PrefValueKind::Default, false, false) } Token::StickyPref if self.kind == PrefValueKind::Default => { - (PrefValueKind::Default, true) + (PrefValueKind::Default, true, false) } - Token::UserPref => (PrefValueKind::User, false), + Token::LockPref => (PrefValueKind::Default, false, true), + Token::UserPref => (PrefValueKind::User, false, false), Token::SingleChar(EOF) => return !self.has_errors, _ => { token = self.error_and_recover( @@ -490,7 +497,6 @@ impl<'t> Parser<'t> { }; // ("," )* // default pref files only - let mut is_locked = false; let mut has_attrs = false; if self.kind == PrefValueKind::Default { let ok = loop {