Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Unified Diff: third_party/polymer/v1_0/find_unused_elements.py

Issue 2920003002: Polymer: Update find_unused_elements.py (Closed)
Patch Set: Fix script to actually work Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/polymer/v1_0/find_unused_elements.py
diff --git a/third_party/polymer/v1_0/find_unused_elements.py b/third_party/polymer/v1_0/find_unused_elements.py
index 5dbacdbdcbcec33a1c587eb987f182fc234e3025..bc377c1c1d8ec03dceefd8f19de026f5a57b428c 100644
--- a/third_party/polymer/v1_0/find_unused_elements.py
+++ b/third_party/polymer/v1_0/find_unused_elements.py
@@ -11,7 +11,14 @@ to check if other elements have become unused.
import os
import re
import subprocess
+import sys
+import tempfile
+_HERE_PATH = os.path.dirname(__file__)
+_SRC_PATH = os.path.normpath(os.path.join(_HERE_PATH, '..', '..', '..'))
+sys.path.append(os.path.join(_SRC_PATH, 'third_party', 'node'))
michaelpg 2017/06/05 19:22:36 remove uglify check in reproduce.sh
dpapad 2017/06/05 19:42:02 Done.
+import node
+import node_modules
class UnusedElementsDetector(object):
"""Finds unused Polymer elements."""
@@ -58,8 +65,16 @@ class UnusedElementsDetector(object):
text = re.sub('<if .*?>', '', text, flags=re.IGNORECASE)
text = re.sub('</if>', '', text, flags=re.IGNORECASE)
- proc = subprocess.Popen(['uglifyjs', filename], stdout=subprocess.PIPE)
Dan Beam 2017/06/02 21:49:08 can we change to subprocess2 and use stderr=subpro
dpapad 2017/06/05 19:22:09 We probably could (have not tried yet), but import
dpapad 2017/06/06 21:39:55 This is not necessary anymore. I rebased this CL a
- return proc.stdout.read()
+ # Need to write the output to a temporary file to avoid
+ # https://github.com/mishoo/UglifyJS2/issues/641 which has been fixed after
+ # version 2.4.21.
+ # TODO(dpapad): Chromium currently uses 2.4.10, update to latest version.
+ with tempfile.NamedTemporaryFile(mode='wt+') as tmp:
+ node.RunNode([
+ node_modules.PathToUglifyJs(), filename, '--output', tmp.name])
+ output = tmp.read()
+
+ return output
@staticmethod
def __StripComments(filename):
@@ -133,11 +148,6 @@ class UnusedElementsDetector(object):
if not filename.endswith('.html') and not filename.endswith('.js'):
continue
- # Skip generated files that may include the element source.
- if filename in ('crisper.js', 'vulcanized.html',
- 'app.crisper.js', 'app.vulcanized.html'):
- continue
-
with open(os.path.join(dirpath, filename)) as f:
text = f.read()
if not re.search('/%s/' % element_dir, text):
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698