Merge remote-tracking branch 'origin/master' into custom

This commit is contained in:
roytam1 2021-04-10 17:30:07 +08:00
commit c220367754
7 changed files with 61 additions and 17 deletions

View file

@ -31,7 +31,6 @@ pref("@GUAO_PREF@.live.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@
pref("@GUAO_PREF@.msn.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");
pref("@GUAO_PREF@.netteller.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@");
pref("@GUAO_PREF@.patientaccess.com","Mozilla/5.0 (%OS_SLICE% rv:60.0) @GK_SLICE@ Firefox/60.0 @PM_SLICE@");
pref("@GUAO_PREF@.twitter.com","Mozilla/5.0 (%OS_SLICE% rv:86.0) @GK_SLICE@ Firefox/86.0");
pref("@GUAO_PREF@.outlook.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");
pref("@GUAO_PREF@.web.de","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");
pref("@GUAO_PREF@.yahoo.com","Mozilla/5.0 (%OS_SLICE% rv:99.9) @GK_SLICE@ Firefox/99.9");
@ -55,6 +54,7 @@ pref("@GUAO_PREF@.mozilla.org","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_D
pref("@GUAO_PREF@.mozilla.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @PM_SLICE@");
pref("@GUAO_PREF@.github.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @PM_SLICE@");
pref("@GUAO_PREF@.spotify.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @PM_SLICE@");
pref("@GUAO_PREF@.twitter.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @PM_SLICE@");
// UA-Sniffing domains below have indicated no interest in supporting Pale Moon (BOO!)
pref("@GUAO_PREF@.humblebundle.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");

View file

@ -27,6 +27,7 @@
<preference id="browser.display.foreground_color" name="browser.display.foreground_color" type="string"/>
<preference id="browser.display.background_color" name="browser.display.background_color" type="string"/>
<preference id="browser.display.use_system_colors" name="browser.display.use_system_colors" type="bool"/>
<preference id="browser.display.prefers_color_scheme" name="browser.display.prefers_color_scheme" type="int"/>
</preferences>
<hbox>
@ -90,5 +91,24 @@
</menupopup>
</menulist>
</vbox>
<groupbox>
<caption label="&prefersColorScheme.caption;"/>
<label control="prefersColorSchemeSelection">&prefersColorScheme.label;</label>
<radiogroup id="prefersColorSchemeSelection"
preference="browser.display.prefers_color_scheme">
<radio value="1"
label="&prefersColorSchemeLight.label;"
accesskey="&prefersColorSchemeLight.accesskey;"/>
<radio value="2"
label="&prefersColorSchemeDark.label;"
accesskey="&prefersColorSchemeDark.accesskey;"/>
<radio value="0"
label="&prefersColorSchemeDisabled.label;"
accesskey="&prefersColorSchemeDisabled.accesskey;"/>
</radiogroup>
<description>&prefersColorSchemeWarning;</description>
</groupbox>
</prefpane>
</prefwindow>

View file

@ -28,3 +28,13 @@
<!ENTITY linkColor.accesskey "l">
<!ENTITY visitedLinkColor.label "Visited Links:">
<!ENTITY visitedLinkColor.accesskey "V">
<!ENTITY prefersColorScheme.caption "Web Page Color Scheme">
<!ENTITY prefersColorScheme.label "When a web page asks for my preferred color scheme:">
<!ENTITY prefersColorSchemeLight.label "Use light colors">
<!ENTITY prefersColorSchemeLight.accesskey "i">
<!ENTITY prefersColorSchemeDark.label "Use dark colors">
<!ENTITY prefersColorSchemeDark.accesskey "d">
<!ENTITY prefersColorSchemeDisabled.label "Do not provide a preferred color scheme">
<!ENTITY prefersColorSchemeDisabled.accesskey "n">
<!ENTITY prefersColorSchemeWarning "WARNING: Not providing a preferred color scheme may result in websites or services not working properly.">

View file

@ -192,8 +192,9 @@ class ConfigureSandbox(dict):
b: __builtins__[b]
for b in ('None', 'False', 'True', 'int', 'bool', 'any', 'all', 'len',
'list', 'tuple', 'set', 'dict', 'isinstance', 'getattr',
'hasattr', 'enumerate', 'range', 'zip')
}, __import__=forbidden_import, str=unicode)
'hasattr', 'enumerate', 'range', 'zip', '__build_class__')
if b in __builtins__},
__import__=forbidden_import, str=unicode)
# Expose a limited set of functions from os.path
OS = ReadOnlyNamespace(path=ReadOnlyNamespace(**{

View file

@ -115,7 +115,10 @@ class Sandbox(dict):
def __init__(self, context, builtins=None, finder=default_finder):
"""Initialize a Sandbox ready for execution.
"""
self._builtins = builtins or self.BUILTINS
self._builtins = ReadOnlyDict(
(builtins or self.BUILTINS).viewitems() |
{b: __builtins__[b] for b in ('__build_class__',)
if b in __builtins__}.viewitems())
dict.__setitem__(self, '__builtins__', self._builtins)
assert isinstance(self._builtins, ReadOnlyDict)

View file

@ -65,6 +65,7 @@ ImportError exception, it is silently ignored.
import sys
import os
import platform
try:
import __builtin__ as builtins
@ -85,11 +86,14 @@ USER_SITE = None
USER_BASE = None
_is_64bit = (getattr(sys, 'maxsize', None) or getattr(sys, 'maxint')) > 2**32
_is_tauthon = platform.python_implementation() == "Tauthon"
_is_pypy = hasattr(sys, 'pypy_version_info')
_is_jython = sys.platform[:4] == 'java'
if _is_jython:
ModuleType = type(os)
_python_libdir = "tauthon" if _is_tauthon else "python"
def makepath(*paths):
dir = os.path.join(*paths)
if _is_jython and (dir == '__classpath__' or
@ -228,16 +232,16 @@ def addsitepackages(known_paths, sys_prefix=sys.prefix, exec_prefix=sys.exec_pre
else: # any other Python distros on OSX work this way
sitedirs = [os.path.join(prefix, "lib",
"python" + sys.version[:3], "site-packages")]
_python_libdir + sys.version[:3], "site-packages")]
elif os.sep == '/':
sitedirs = [os.path.join(prefix,
"lib",
"python" + sys.version[:3],
_python_libdir + sys.version[:3],
"site-packages"),
os.path.join(prefix, "lib", "site-python"),
os.path.join(prefix, "python" + sys.version[:3], "lib-dynload")]
lib64_dir = os.path.join(prefix, "lib64", "python" + sys.version[:3], "site-packages")
os.path.join(prefix, _python_libdir + sys.version[:3], "lib-dynload")]
lib64_dir = os.path.join(prefix, "lib64", _python_libdir + sys.version[:3], "site-packages")
if (os.path.exists(lib64_dir) and
os.path.realpath(lib64_dir) not in [os.path.realpath(p) for p in sitedirs]):
if _is_64bit:
@ -252,15 +256,15 @@ def addsitepackages(known_paths, sys_prefix=sys.prefix, exec_prefix=sys.exec_pre
pass
# Debian-specific dist-packages directories:
sitedirs.append(os.path.join(prefix, "local/lib",
"python" + sys.version[:3],
_python_libdir + sys.version[:3],
"dist-packages"))
if sys.version[0] == '2':
sitedirs.append(os.path.join(prefix, "lib",
"python" + sys.version[:3],
_python_libdir + sys.version[:3],
"dist-packages"))
else:
sitedirs.append(os.path.join(prefix, "lib",
"python" + sys.version[0],
_python_libdir + sys.version[0],
"dist-packages"))
sitedirs.append(os.path.join(prefix, "lib", "dist-python"))
else:
@ -583,9 +587,9 @@ def virtual_install_main_packages():
elif sys.platform == 'win32' and os.sep == '\\':
paths = [os.path.join(sys.real_prefix, 'Lib'), os.path.join(sys.real_prefix, 'DLLs')]
else:
paths = [os.path.join(sys.real_prefix, 'lib', 'python'+sys.version[:3])]
paths = [os.path.join(sys.real_prefix, 'lib', _python_libdir + sys.version[:3])]
hardcoded_relative_dirs = paths[:] # for the special 'darwin' case below
lib64_path = os.path.join(sys.real_prefix, 'lib64', 'python'+sys.version[:3])
lib64_path = os.path.join(sys.real_prefix, 'lib64', _python_libdir + sys.version[:3])
if os.path.exists(lib64_path):
if _is_64bit:
paths.insert(0, lib64_path)
@ -602,7 +606,7 @@ def virtual_install_main_packages():
# This is a non-multiarch aware Python. Fallback to the old way.
arch = sys.platform
plat_path = os.path.join(sys.real_prefix, 'lib',
'python'+sys.version[:3],
_python_libdir + sys.version[:3],
'plat-%s' % arch)
if os.path.exists(plat_path):
paths.append(plat_path)

View file

@ -44,13 +44,14 @@ if sys.version_info < (2, 6):
print('ERROR: this script requires Python 2.6 or greater.')
sys.exit(101)
import platform
try:
basestring
except NameError:
basestring = str
py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1])
is_tauthon = platform.python_implementation() == "Tauthon"
is_jython = sys.platform.startswith('java')
is_pypy = hasattr(sys, 'pypy_version_info')
is_win = (sys.platform == 'win32' and os.sep == '\\')
@ -59,6 +60,9 @@ is_msys2 = (sys.platform == 'win32' and os.sep == '/')
is_darwin = (sys.platform == 'darwin')
abiflags = getattr(sys, 'abiflags', '')
py_version = '%s%s.%s' % ("tauthon" if is_tauthon else "python",
sys.version_info[0], sys.version_info[1])
user_dir = os.path.expanduser('~')
if is_win:
default_storage_dir = os.path.join(user_dir, 'virtualenv')
@ -121,7 +125,7 @@ REQUIRED_MODULES = ['os', 'posix', 'posixpath', 'nt', 'ntpath', 'genericpath',
'fnmatch', 'locale', 'encodings', 'codecs',
'stat', 'UserDict', 'readline', 'copy_reg', 'types',
're', 'sre', 'sre_parse', 'sre_constants', 'sre_compile',
'zlib']
'zlib', 'platform', 'string']
REQUIRED_FILES = ['lib-dynload', 'config']
@ -131,6 +135,8 @@ if majver == 2:
REQUIRED_MODULES.extend(['warnings', 'linecache', '_abcoll', 'abc'])
if minver >= 7:
REQUIRED_MODULES.extend(['_weakrefset'])
if is_tauthon:
REQUIRED_MODULES.extend(['_oserror'])
if is_msys2:
REQUIRED_MODULES.extend(['functools'])
elif majver == 3: