Skip to content
Permalink
Browse files

Fix the parsing of the chromium HSTS preload list

Urg! The Chromium HSTS preload JSON file contains single line comments. Previously these were filtered out with a very simple regex that just looked for '//' and removed the line. Now the file has added a couple fields that have URLs in them that were erroneously removed and caused the JSON parsing to fail. This commit slightly complicates the regex to fix this specific problem.

If this happens again, it's likely worth it to figure out how to use a real parser to remove the comments.

#8760
  • Loading branch information
samfoo committed Dec 2, 2015
1 parent a8cbc28 commit 732ae5714f07fdd772a6469e1d45691bf6ae046f
Showing with 5,288 additions and 56 deletions.
  1. +1 −1 python/servo/bootstrap_commands.py
  2. +5,287 −55 resources/hsts_preload.json
@@ -251,7 +251,7 @@ def bootstrap_hsts_preload(self, force=False):

# The chromium "json" has single line comments in it which, of course,
# are non-standard/non-valid json. Simply strip them out before parsing
content_json = re.sub(r'//.*$', '', content_decoded, flags=re.MULTILINE)
content_json = re.sub(r'(^|\s+)//.*$', '', content_decoded, flags=re.MULTILINE)

try:
pins_and_static_preloads = json.loads(content_json)

0 comments on commit 732ae57

Please sign in to comment.
You can’t perform that action at this time.