Chromium Code Reviews| Index: chrome/common/extensions/docs/server2/api_data_source.py |
| diff --git a/chrome/common/extensions/docs/server2/api_data_source.py b/chrome/common/extensions/docs/server2/api_data_source.py |
| index aaea1ab2a1e50fa4b28bc6fb70cf8be6624ab855..247db869afd0e9137b5d133284b5a313a5ed1ed6 100644 |
| --- a/chrome/common/extensions/docs/server2/api_data_source.py |
| +++ b/chrome/common/extensions/docs/server2/api_data_source.py |
| @@ -171,7 +171,7 @@ class _APINodeCursor(object): |
| return None |
| def _LookupAvailability(self, lookup_path): |
| - '''Runs all the lookup checks on self._lookup_path and |
| + '''Runs all the lookup checks on |lookup_path| and |
| returns the node availability if found, None otherwise. |
| ''' |
| for lookup in (self._LookupNodeAvailability, |
| @@ -210,6 +210,21 @@ class _APINodeCursor(object): |
| return 'properties' |
| raise AssertionError('Could not classify node %s' % self) |
| + def GetDeprecated(self): |
| + '''Returns when this node became deprecated, or None if it |
| + is not deprecated. |
| + ''' |
| + deprecated_path = self._lookup_path + ['deprecated'] |
| + for lookup in (self._LookupNodeAvailability, |
| + self._CheckNamespacePrefix): |
| + node_availability = lookup(deprecated_path) |
| + if node_availability is not None: |
| + return node_availability |
| + # Check for this before calling CheckEventCallback to avoid |
| + # unnecessary AssertionErrors. |
|
not at google - send to devlin
2014/07/15 21:51:15
comment is unnecessary, code is clear enough
|
| + if 'callback' in self._lookup_path: |
| + return self._CheckEventCallback(deprecated_path) |
| + |
| def GetAvailability(self): |
| '''Returns availability information for this node. |
| ''' |
| @@ -222,6 +237,15 @@ class _APINodeCursor(object): |
| logging.warning('No availability found for: %s' % self) |
| return None |
| + # Check this before checking parent availability; we always want |
|
not at google - send to devlin
2014/07/15 21:51:15
I'd rather that the callers worry about this rathe
|
| + # to see when an API became deprecated. |
| + deprecated_availability = self.GetDeprecated() |
| + if deprecated_availability is not None: |
| + # The same annotation object is used for multiple nodes. |
| + deprecated_info = copy(deprecated_availability) |
| + deprecated_info.channel = 'deprecated' |
| + return deprecated_info |
| + |
| parent_node_availability = self._LookupAvailability(self._GetParentPath()) |
| # If the parent node availability couldn't be found, something |
| # is very wrong. |