summaryrefslogtreecommitdiff
path: root/waterfox/mozilla-440908.patch
diff options
context:
space:
mode:
Diffstat (limited to 'waterfox/mozilla-440908.patch')
-rw-r--r--waterfox/mozilla-440908.patch111
1 files changed, 111 insertions, 0 deletions
diff --git a/waterfox/mozilla-440908.patch b/waterfox/mozilla-440908.patch
new file mode 100644
index 0000000..cce5248
--- /dev/null
+++ b/waterfox/mozilla-440908.patch
@@ -0,0 +1,111 @@
+diff -up firefox-56.0/modules/libpref/prefapi.cpp.440908 firefox-56.0/modules/libpref/prefapi.cpp
+--- firefox-56.0/modules/libpref/prefapi.cpp.440908 2017-09-14 22:15:52.000000000 +0200
++++ firefox-56.0/modules/libpref/prefapi.cpp 2017-09-25 10:39:39.266572792 +0200
+@@ -1036,8 +1036,8 @@ void PREF_ReaderCallback(void *clo
+ PrefValue value,
+ PrefType type,
+ bool isDefault,
+- bool isStickyDefault)
+-
++ bool isStickyDefault,
++ bool isLocked)
+ {
+ uint32_t flags = 0;
+ if (isDefault) {
+@@ -1049,4 +1049,6 @@ void PREF_ReaderCallback(void *clo
+ flags |= kPrefForceSet;
+ }
+ pref_HashPref(pref, value, type, flags);
++ if (isLocked)
++ PREF_LockPref(pref, true);
+ }
+diff -up firefox-56.0/modules/libpref/prefapi.h.440908 firefox-56.0/modules/libpref/prefapi.h
+--- firefox-56.0/modules/libpref/prefapi.h.440908 2017-07-31 18:20:51.000000000 +0200
++++ firefox-56.0/modules/libpref/prefapi.h 2017-09-25 10:39:39.267572789 +0200
+@@ -246,8 +246,8 @@ void PREF_ReaderCallback( void *closure,
+ PrefValue value,
+ PrefType type,
+ bool isDefault,
+- bool isStickyDefault);
+-
++ bool isStickyDefault,
++ bool isLocked);
+
+ /*
+ * Callback whenever we change a preference
+diff -up firefox-56.0/modules/libpref/prefread.cpp.440908 firefox-56.0/modules/libpref/prefread.cpp
+--- firefox-56.0/modules/libpref/prefread.cpp.440908 2017-09-14 22:15:52.000000000 +0200
++++ firefox-56.0/modules/libpref/prefread.cpp 2017-09-25 10:39:39.267572789 +0200
+@@ -43,6 +43,7 @@ enum {
+ #define BITS_PER_HEX_DIGIT 4
+
+ static const char kUserPref[] = "user_pref";
++static const char kLockPref[] = "lockPref";
+ static const char kPref[] = "pref";
+ static const char kPrefSticky[] = "sticky_pref";
+ static const char kTrue[] = "true";
+@@ -146,7 +147,7 @@ pref_DoCallback(PrefParseState *ps)
+ break;
+ }
+ (*ps->reader)(ps->closure, ps->lb, value, ps->vtype, ps->fdefault,
+- ps->fstickydefault);
++ ps->fstickydefault, ps->flock);
+ return true;
+ }
+
+@@ -215,6 +216,7 @@ PREF_ParseBuf(PrefParseState *ps, const
+ ps->vtype = PrefType::Invalid;
+ ps->fdefault = false;
+ ps->fstickydefault = false;
++ ps->flock = false;
+ }
+ switch (c) {
+ case '/': /* begin comment block or line? */
+@@ -225,11 +227,14 @@ PREF_ParseBuf(PrefParseState *ps, const
+ break;
+ case 'u': /* indicating user_pref */
+ case 's': /* indicating sticky_pref */
++ case 'l': /* indicating lockPref */
+ case 'p': /* indicating pref */
+ if (c == 'u') {
+ ps->smatch = kUserPref;
+ } else if (c == 's') {
+ ps->smatch = kPrefSticky;
++ } else if (c == 'l') {
++ ps->smatch = kLockPref;
+ } else {
+ ps->smatch = kPref;
+ }
+@@ -277,8 +282,10 @@ PREF_ParseBuf(PrefParseState *ps, const
+ /* name parsing */
+ case PREF_PARSE_UNTIL_NAME:
+ if (c == '\"' || c == '\'') {
+- ps->fdefault = (ps->smatch == kPref || ps->smatch == kPrefSticky);
++ ps->fdefault = (ps->smatch == kPref || ps->smatch == kPrefSticky
++ || ps->smatch == kLockPref);
+ ps->fstickydefault = (ps->smatch == kPrefSticky);
++ ps->flock = (ps->smatch == kLockPref);
+ ps->quotechar = c;
+ ps->nextstate = PREF_PARSE_UNTIL_COMMA; /* return here when done */
+ state = PREF_PARSE_QUOTED_STRING;
+diff -up firefox-56.0/modules/libpref/prefread.h.440908 firefox-56.0/modules/libpref/prefread.h
+--- firefox-56.0/modules/libpref/prefread.h.440908 2017-09-14 22:15:52.000000000 +0200
++++ firefox-56.0/modules/libpref/prefread.h 2017-09-25 10:39:39.267572789 +0200
+@@ -34,7 +34,8 @@ typedef void (*PrefReader)(void *c
+ PrefValue val,
+ PrefType type,
+ bool defPref,
+- bool stickyPref);
++ bool stickyPref,
++ bool lockPref);
+
+ /**
+ * Report any errors or warnings we encounter during parsing.
+@@ -62,6 +63,7 @@ typedef struct PrefParseState {
+ PrefType vtype; /* PREF_STRING,INT,BOOL */
+ bool fdefault; /* true if (default) pref */
+ bool fstickydefault; /* true if (sticky) pref */
++ bool flock; /* true if pref to be locked */
+ } PrefParseState;
+
+ /**
bgstack15