[tor-commits] [tor-browser/tor-browser-52.1.0esr-7.0-1] Bug 1351071: Get rid of pre-generated startup cache r=glandium

gk at torproject.org gk at torproject.org
Mon Apr 17 18:22:24 UTC 2017


commit ec0b55bdfb638c63f30116b19583456632ad708d
Author: Chris AtLee <catlee at mozilla.com>
Date:   Tue Apr 4 09:26:25 2017 -0400

    Bug 1351071: Get rid of pre-generated startup cache r=glandium
    
    MozReview-Commit-ID: BcWcqEKwGBv
    
    --HG--
    extra : rebase_source : 4bd21805a89359a5a2ed7ffd2ee2b76cf1e9e634
---
 python/mozbuild/mozpack/packager/formats.py        |  7 +-
 python/mozbuild/mozpack/packager/unpack.py         |  8 +--
 .../mozbuild/mozpack/test/test_packager_formats.py |  2 -
 toolkit/mozapps/installer/packager.py              | 74 ----------------------
 4 files changed, 3 insertions(+), 88 deletions(-)

diff --git a/python/mozbuild/mozpack/packager/formats.py b/python/mozbuild/mozpack/packager/formats.py
index c4adaba..be5fafe 100644
--- a/python/mozbuild/mozpack/packager/formats.py
+++ b/python/mozbuild/mozpack/packager/formats.py
@@ -23,11 +23,6 @@ from mozpack.copier import (
     Jarrer,
 )
 
-STARTUP_CACHE_PATHS = [
-    'jsloader',
-    'jssubloader',
-]
-
 '''
 Formatters are classes receiving packaging instructions and creating the
 appropriate package layout.
@@ -321,4 +316,4 @@ class OmniJarSubFormatter(PiecemealFormatter):
             'greprefs.js',
             'hyphenation',
             'update.locale',
-        ] or path[0] in STARTUP_CACHE_PATHS
+        ]
diff --git a/python/mozbuild/mozpack/packager/unpack.py b/python/mozbuild/mozpack/packager/unpack.py
index fa2b474..3f6633e 100644
--- a/python/mozbuild/mozpack/packager/unpack.py
+++ b/python/mozbuild/mozpack/packager/unpack.py
@@ -23,10 +23,7 @@ from mozpack.copier import (
     FileCopier,
 )
 from mozpack.packager import SimplePackager
-from mozpack.packager.formats import (
-    FlatFormatter,
-    STARTUP_CACHE_PATHS,
-)
+from mozpack.packager.formats import FlatFormatter
 from urlparse import urlparse
 
 
@@ -188,8 +185,7 @@ def unpack_to_registry(source, registry):
     finder = UnpackFinder(source)
     packager = SimplePackager(FlatFormatter(registry))
     for p, f in finder.find('*'):
-        if mozpath.split(p)[0] not in STARTUP_CACHE_PATHS:
-            packager.add(p, f)
+        packager.add(p, f)
     packager.close()
 
 
diff --git a/python/mozbuild/mozpack/test/test_packager_formats.py b/python/mozbuild/mozpack/test/test_packager_formats.py
index 1af4336..ca141b0 100644
--- a/python/mozbuild/mozpack/test/test_packager_formats.py
+++ b/python/mozbuild/mozpack/test/test_packager_formats.py
@@ -408,8 +408,6 @@ class TestFormatters(unittest.TestCase):
             self.assertTrue(is_resource(base, 'greprefs.js'))
             self.assertTrue(is_resource(base, 'hyphenation/foo'))
             self.assertTrue(is_resource(base, 'update.locale'))
-            self.assertTrue(
-                is_resource(base, 'jsloader/resource/gre/modules/foo.jsm'))
             self.assertFalse(is_resource(base, 'foo'))
             self.assertFalse(is_resource(base, 'foo/bar/greprefs.js'))
             self.assertTrue(is_resource(base, 'defaults/messenger/foo.dat'))
diff --git a/toolkit/mozapps/installer/packager.py b/toolkit/mozapps/installer/packager.py
index f2dc3fa..1a1b335 100644
--- a/toolkit/mozapps/installer/packager.py
+++ b/toolkit/mozapps/installer/packager.py
@@ -30,7 +30,6 @@ from argparse import ArgumentParser
 import os
 from StringIO import StringIO
 import subprocess
-import platform
 import mozinfo
 
 # List of libraries to shlibsign.
@@ -125,60 +124,6 @@ class LibSignFile(File):
             errors.fatal('Error while signing %s' % self.path)
 
 
-def precompile_cache(registry, source_path, gre_path, app_path):
-    '''
-    Create startup cache for the given application directory, using the
-    given GRE path.
-    - registry is a FileRegistry-like instance where to add the startup cache.
-    - source_path is the base path of the package.
-    - gre_path is the GRE path, relative to source_path.
-    - app_path is the application path, relative to source_path.
-    Startup cache for all resources under resource://app/ are generated,
-    except when gre_path == app_path, in which case it's under
-    resource://gre/.
-    '''
-    from tempfile import mkstemp
-    source_path = os.path.abspath(source_path)
-    if app_path != gre_path:
-        resource = 'app'
-    else:
-        resource = 'gre'
-    app_path = os.path.join(source_path, app_path)
-    gre_path = os.path.join(source_path, gre_path)
-
-    fd, cache = mkstemp('.zip')
-    os.close(fd)
-    os.remove(cache)
-
-    try:
-        extra_env = {'MOZ_STARTUP_CACHE': cache}
-        if buildconfig.substs.get('MOZ_TSAN'):
-            extra_env['TSAN_OPTIONS'] = 'report_bugs=0'
-        if buildconfig.substs.get('MOZ_ASAN'):
-            extra_env['ASAN_OPTIONS'] = 'detect_leaks=0'
-        if launcher.launch(['xpcshell', '-g', gre_path, '-a', app_path,
-                            '-f', os.path.join(os.path.dirname(__file__),
-                            'precompile_cache.js'),
-                            '-e', 'precompile_startupcache("resource://%s/");'
-                                  % resource],
-                           extra_linker_path=gre_path,
-                           extra_env=extra_env):
-            errors.fatal('Error while running startup cache precompilation')
-            return
-        from mozpack.mozjar import JarReader
-        jar = JarReader(cache)
-        resource = '/resource/%s/' % resource
-        for f in jar:
-            if resource in f.filename:
-                path = f.filename[f.filename.index(resource) + len(resource):]
-                if registry.contains(path):
-                    registry.add(f.filename, GeneratedFile(f.read()))
-        jar.close()
-    finally:
-        if os.path.exists(cache):
-            os.remove(cache)
-
-
 class RemovedFiles(GeneratedFile):
     '''
     File class for removed-files. Is used as a preprocessor parser.
@@ -389,25 +334,6 @@ def main():
             if key in log:
                 f.preload(log[key])
 
-    # Fill startup cache
-    if isinstance(formatter, OmniJarFormatter) and launcher.can_launch() \
-      and buildconfig.substs['MOZ_DISABLE_STARTUPCACHE'] != '1':
-        gre_path = None
-        def get_bases():
-            for b in sink.packager.get_bases(addons=False):
-                for p in (mozpath.join('bin', b), b):
-                    if os.path.exists(os.path.join(args.source, p)):
-                        yield p
-                        break
-        for base in sorted(get_bases()):
-            if not gre_path:
-                gre_path = base
-            omnijar_path = mozpath.join(sink.normalize_path(base),
-                                        buildconfig.substs['OMNIJAR_NAME'])
-            if formatter.contains(omnijar_path):
-                precompile_cache(formatter.copier[omnijar_path],
-                                 args.source, gre_path, base)
-
     copier.copy(args.destination)
 
 



More information about the tor-commits mailing list