Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import hashlib | 5 import hashlib |
| 6 import json | 6 import json |
| 7 import logging | 7 import logging |
| 8 import posixpath | 8 import posixpath |
| 9 import re | 9 import re |
| 10 import traceback | 10 import traceback |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 49 def Create(self, request): | 49 def Create(self, request): |
| 50 '''Returns a new SamplesDataSource bound to |request|. | 50 '''Returns a new SamplesDataSource bound to |request|. |
| 51 ''' | 51 ''' |
| 52 return SamplesDataSource(self._extensions_cache, | 52 return SamplesDataSource(self._extensions_cache, |
| 53 self._apps_cache, | 53 self._apps_cache, |
| 54 self._extension_samples_path, | 54 self._extension_samples_path, |
| 55 self._base_path, | 55 self._base_path, |
| 56 request) | 56 request) |
| 57 | 57 |
| 58 def _GetAPIItems(self, js_file): | 58 def _GetAPIItems(self, js_file): |
| 59 chrome_regex = '(chrome\.[a-zA-Z0-9\.]+)' | 59 chrome_regex = r'(chrome\.[a-zA-Z0-9\.]+)' |
| 60 calls = set(re.findall(chrome_regex, js_file)) | 60 calls = set(re.findall(chrome_regex, js_file)) |
| 61 # Find APIs that have been assigned into variables. | 61 # Find APIs that have been assigned into variables. |
| 62 assigned_vars = dict(re.findall('var\s*([^\s]+)\s*=\s*%s;' % chrome_regex, | 62 assigned_vars = dict( |
| 63 js_file)) | 63 re.findall(r'var\s*([^\s]+)\s*=\s*%s;' % chrome_regex, js_file)) |
| 64 # Replace the variable name with the full API name. | 64 # Replace the variable name with the full API name. |
| 65 for var_name, value in assigned_vars.iteritems(): | 65 for var_name, value in assigned_vars.iteritems(): |
|
Jeffrey Yasskin
2013/11/01 18:00:24
You might be able to make this loop more efficient
| |
| 66 js_file = js_file.replace(var_name, value) | 66 js_file = re.compile(r'\b%s\b' % var_name).sub(value, js_file) |
|
not at google - send to devlin
2013/11/01 17:12:04
this is the most important change.
Jeffrey Yasskin
2013/11/01 18:00:24
Instead of re.compile(variable_string).sub(...), u
Jeffrey Yasskin
2013/11/01 18:00:24
You probably want re.escape(var_name) in case it c
| |
| 67 return calls.union(re.findall(chrome_regex, js_file)) | 67 return calls.union(re.findall(chrome_regex, js_file)) |
|
Jeffrey Yasskin
2013/11/01 18:00:24
Wait a second, you're just trying to find the APIs
not at google - send to devlin
2013/11/04 21:51:01
I got a little bit lost in your comments there + t
| |
| 68 | 68 |
| 69 def _GetDataFromManifest(self, path, file_system): | 69 def _GetDataFromManifest(self, path, file_system): |
| 70 manifest = file_system.ReadSingle(path + '/manifest.json').Get() | 70 manifest = file_system.ReadSingle(path + '/manifest.json').Get() |
| 71 try: | 71 try: |
| 72 manifest_json = json.loads(json_comment_eater.Nom(manifest)) | 72 manifest_json = json.loads(json_comment_eater.Nom(manifest)) |
| 73 except ValueError as e: | 73 except ValueError as e: |
| 74 logging.error('Error parsing manifest.json for %s: %s' % (path, e)) | 74 logging.error('Error parsing manifest.json for %s: %s' % (path, e)) |
| 75 return None | 75 return None |
| 76 l10n_data = { | 76 l10n_data = { |
| 77 'name': manifest_json.get('name', ''), | 77 'name': manifest_json.get('name', ''), |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 230 else: | 230 else: |
| 231 dict_['id'] = self._GetSampleId(name) | 231 dict_['id'] = self._GetSampleId(name) |
| 232 return_list.append(dict_) | 232 return_list.append(dict_) |
| 233 return return_list | 233 return return_list |
| 234 | 234 |
| 235 def get(self, key): | 235 def get(self, key): |
| 236 return { | 236 return { |
| 237 'apps': lambda: self._CreateSamplesDict('apps'), | 237 'apps': lambda: self._CreateSamplesDict('apps'), |
| 238 'extensions': lambda: self._CreateSamplesDict('extensions') | 238 'extensions': lambda: self._CreateSamplesDict('extensions') |
| 239 }.get(key, lambda: {})() | 239 }.get(key, lambda: {})() |
| OLD | NEW |