Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: packagerChrome.py

Issue 29501558: Issue 5383 - Add tests for the Chrome and Firefox packagers (Closed)
Patch Set: Addressing comments, handling Edge devenv Created Oct. 18, 2017, 11:19 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « package.json ('k') | packagerEdge.py » ('j') | tests/test_packagerWebExt.py » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packagerChrome.py
diff --git a/packagerChrome.py b/packagerChrome.py
index 948a9074ce55b2e359237582c27474efcc1cdad6..0fcd48377e60dfed6140f4327f754566a7b57b78 100644
--- a/packagerChrome.py
+++ b/packagerChrome.py
@@ -8,10 +8,10 @@ import io
import json
import os
import re
-from StringIO import StringIO
import struct
import subprocess
import sys
+import random
from packager import (readMetadata, getDefaultFileName, getBuildVersion,
getTemplate, Files)
@@ -44,13 +44,15 @@ def processFile(path, data, params):
def makeIcons(files, filenames):
- try:
- from PIL import Image
- except ImportError:
- import Image
icons = {}
for filename in filenames:
- width, height = Image.open(StringIO(files[filename])).size
+ try:
+ magic, width, height = struct.unpack_from('>8s8xii',
+ files[filename])
+ except struct.error:
+ magic = None
+ if magic != '\x89PNG\r\n\x1a\n':
+ raise Exception(filename + ' is no valid PNG.')
if(width != height):
print >>sys.stderr, 'Warning: %s size is %ix%i, icon should be square' % (filename, width, height)
icons[width] = filename
@@ -319,6 +321,18 @@ def writePackage(outputFile, pubkey, signature, zipdata):
file.write(zipdata)
+def add_devenv_requirements(files, metadata, params):
+ files.read(os.path.join(os.path.dirname(__file__),
+ 'chromeDevenvPoller__.js'),
+ relpath='devenvPoller__.js')
+ files['devenvVersion__'] = str(random.random())
+
+ if metadata.has_option('general', 'testScripts'):
+ files['qunit/index.html'] = createScriptPage(
+ params, 'testIndex.html.tmpl', ('general', 'testScripts')
+ )
+
+
def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuild=False, keyFile=None, devenv=False):
metadata = readMetadata(baseDir, type)
version = getBuildVersion(baseDir, metadata, releaseBuild, buildNum)
@@ -363,15 +377,7 @@ def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuil
fix_translations_for_chrome(files)
if devenv:
- import buildtools
- import random
- files.read(os.path.join(buildtools.__path__[0], 'chromeDevenvPoller__.js'), relpath='devenvPoller__.js')
- files['devenvVersion__'] = str(random.random())
-
- if metadata.has_option('general', 'testScripts'):
- files['qunit/index.html'] = createScriptPage(
- params, 'testIndex.html.tmpl', ('general', 'testScripts')
- )
+ add_devenv_requirements(files, metadata, params)
zipdata = files.zipToString()
signature = None
« no previous file with comments | « package.json ('k') | packagerEdge.py » ('j') | tests/test_packagerWebExt.py » ('J')

Powered by Google App Engine
This is Rietveld