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

Side by Side Diff: tools/json_schema_compiler/model.py

Issue 23478003: Check and canonicalize CSS selectors before registering PageStateMatchers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix problems kalman noticed Created 7 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 os.path 5 import os.path
6 6
7 from json_parse import OrderedDict 7 from json_parse import OrderedDict
8 from memoize import memoize 8 from memoize import memoize
9 9
10 class ParseException(Exception): 10 class ParseException(Exception):
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 return None 166 return None
167 self.choices = [ 167 self.choices = [
168 Type(self, 168 Type(self,
169 generate_type_name(choice) or 'choice%s' % i, 169 generate_type_name(choice) or 'choice%s' % i,
170 choice, 170 choice,
171 namespace, 171 namespace,
172 origin) 172 origin)
173 for i, choice in enumerate(json['choices'])] 173 for i, choice in enumerate(json['choices'])]
174 elif json_type == 'object': 174 elif json_type == 'object':
175 if not ( 175 if not (
176 'isInstanceOf' in json or
176 'properties' in json or 177 'properties' in json or
177 'additionalProperties' in json or 178 'additionalProperties' in json or
178 'functions' in json or 179 'functions' in json or
179 'events' in json): 180 'events' in json):
180 raise ParseException(self, name + " has no properties or functions") 181 raise ParseException(self, name + " has no properties or functions")
181 self.property_type = PropertyType.OBJECT 182 self.property_type = PropertyType.OBJECT
182 additional_properties_json = json.get('additionalProperties', None) 183 additional_properties_json = json.get('additionalProperties', None)
183 if additional_properties_json is not None: 184 if additional_properties_json is not None:
184 self.additional_properties = Type(self, 185 self.additional_properties = Type(self,
185 'additionalProperties', 186 'additionalProperties',
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 def _GetPlatforms(json): 484 def _GetPlatforms(json):
484 if 'platforms' not in json: 485 if 'platforms' not in json:
485 return None 486 return None
486 platforms = [] 487 platforms = []
487 for platform_name in json['platforms']: 488 for platform_name in json['platforms']:
488 for platform_enum in _Enum.GetAll(Platforms): 489 for platform_enum in _Enum.GetAll(Platforms):
489 if platform_name == platform_enum.name: 490 if platform_name == platform_enum.name:
490 platforms.append(platform_enum) 491 platforms.append(platform_enum)
491 break 492 break
492 return platforms 493 return platforms
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698