commit ec0b55bdfb638c63f30116b19583456632ad708d
Author: Chris AtLee <catlee(a)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)