Delete public commit queue to avoid confusion after move to internal repo

BUG=340808

Review URL: https://codereview.chromium.org/135363007

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/commit-queue@249148 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 451b2ac..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-*.pyc
-/logs-*
-/subversion_config/README.txt
-/subversion_config/auth
-/subversion_config/servers
-/workdir/*
diff --git a/DEPS b/DEPS
deleted file mode 100644
index 0fbdcd2..0000000
--- a/DEPS
+++ /dev/null
@@ -1,12 +0,0 @@
-deps = {
-  "depot_tools": "/trunk/tools/depot_tools",
-}
-
-hooks = [
-  {
-    "pattern": ".",
-    "action": [
-      "python", "commit-queue/get_appengine.py"
-    ],
-  },
-]
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
deleted file mode 100644
index 3f1d809..0000000
--- a/PRESUBMIT.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Top-level presubmit script for commit-queue.
-
-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for
-details on the presubmit API built into gcl.
-"""
-
-
-def CommonChecks(input_api, output_api):
-  import sys
-  def join(*args):
-    return input_api.os_path.join(input_api.PresubmitLocalPath(), *args)
-
-  output = []
-
-  sys_path_backup = sys.path
-  try:
-    # Note that this won't work on the commit queue.
-    sys.path = [join('..', 'commit-queue-internal')] + sys.path
-    black_list = list(input_api.DEFAULT_BLACK_LIST) + [
-        r'^workdir/.*',
-        r'^tests/.+',
-    ]
-    output.extend(input_api.canned_checks.RunPylint(
-        input_api, output_api, black_list=black_list))
-
-    sys.path = [join('tests')] + sys.path
-    black_list = list(input_api.DEFAULT_BLACK_LIST) + [
-        r'^workdir/.*',
-    ]
-    white_list = [ r'tests/.+\.py$' ]
-    output.extend(input_api.canned_checks.RunPylint(
-        input_api, output_api, black_list=black_list, white_list=white_list))
-  finally:
-    sys.path = sys_path_backup
-
-  output.extend(input_api.canned_checks.RunUnitTestsInDirectory(
-    input_api, output_api, 'tests', whitelist=[r'.*_test\.py$']))
-  return output
-
-
-def CheckChangeOnUpload(input_api, output_api):
-  return CommonChecks(input_api, output_api)
-
-
-def CheckChangeOnCommit(input_api, output_api):
-  return CommonChecks(input_api, output_api)
diff --git a/README b/README
deleted file mode 100644
index 1d14ca1..0000000
--- a/README
+++ /dev/null
@@ -1,30 +0,0 @@
-Commit queue master process scripts.
-
-This script requires privileged access to be able to impersonate svn
-credentials. When it detects it's not run on the main server, it will run in
-'dry run' mode where it has no effect; it doesn't modify issues on rietveld or
-commit patches.
-
-
-Design overview:
-
-The commit queue process runs a tight loop that does 2 things in parallel:
-- Scans for new reviews on a rietveld instance with commit bit (c+) set and
-  enqueue these to the commit queue.
-- Manages the pending entries in the commit queue by testing each item
-  independently and committing as soon as all the signals for a specific review
-  are green.
-
-The life of a pending commit is:
-- If any of the following steps fail; mark the review c-, remove from the queue
-  and add a comment on the review.
-  - Run presubmit scripts and make sure there is a LGTM from a valid reviewer.
-  - Send the patch to the try server on relevant builders and run relevant
-    tests.
-  - Wait for all try jobs completes and be green.
-  - Sync local checkout to HEAD.
-  - Apply the patch.
-  - Commit as the user.
-
-Each verification step is done through a Verifier plug-in. Every Verifier is a
-single python file in verifications/.
diff --git a/WATCHLISTS b/WATCHLISTS
deleted file mode 100644
index 2dcfca7..0000000
--- a/WATCHLISTS
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Watchlist Rules
-# Refer: http://dev.chromium.org/developers/contributing-code/watchlists
-
-{
-  'WATCHLIST_DEFINITIONS': {
-    'all': {
-      'filepath': '.+',
-    },
-  },
-  'WATCHLISTS': {
-    'all': [
-      'cmp-cc@chromium.org',
-      'ilevy-cc@chromium.org',
-    ],
-  },
-}
diff --git a/async_push.py b/async_push.py
deleted file mode 100644
index 2e6d861..0000000
--- a/async_push.py
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Out of band HTTP push."""
-
-import Queue
-import json
-import logging
-import os
-import threading
-import time
-import traceback
-import urllib
-
-import errors
-from verification import base
-
-
-class AsyncPushNoop(object):
-  url = 'http://localhost'
-  def close(self):
-    pass
-
-  def send(self, pending, packet):
-    pass
-
-  @staticmethod
-  def _package(pending, packet):
-    data = {
-      'done': pending.get_state() not in (base.PROCESSING, base.IGNORED),
-      'issue': pending.issue,
-      'owner': pending.owner,
-      'patchset': pending.patchset,
-      'timestamp': time.time(),
-    }
-    if packet:
-      data.update(packet)
-    return data
-
-
-class AsyncPushStore(AsyncPushNoop):
-  """Saves all the events into workdir/events.json for later analysis.
-
-  Thread-safe.
-  """
-  def __init__(self):
-    super(AsyncPushStore, self).__init__()
-    self.lock = threading.Lock()
-    self.queue = []
-
-  def close(self):
-    with self.lock:
-      with open(os.path.join('workdir', 'events.json'), 'w') as f:
-        json.dump(self.queue, f, indent=2)
-
-  def send(self, pending, packet):
-    with self.lock:
-      self.queue.append(self._package(pending, packet))
-
-
-class AsyncPush(AsyncPushNoop):
-  """Sends HTTP Post asynchronously to the tree status application.
-
-  This object uses a background worker thread, and is thread-safe.
-  """
-  _TERMINATE = object()
-
-  def __init__(self, url, password, resource='/receiver'):
-    super(AsyncPush, self).__init__()
-    assert url
-    assert password
-    self.url = url
-    self.resource = resource
-    self.password = password
-    self.queue = Queue.Queue()
-    self.thread = threading.Thread(target=self._worker_thread)
-    self.thread.daemon = True
-    self.thread.start()
-
-  def close(self):
-    self.queue.put(self._TERMINATE)
-    self.thread.join()
-
-  def send(self, pending, packet):
-    """Queues a packet."""
-    logging.debug('For issue %d, queuing for send: %s', pending.issue, packet)
-    self.queue.put(self._package(pending, packet))
-
-  def _get_items(self):
-    """Waits for an item to be queued and returns up to 10 next items if queued
-    fast enough.
-    """
-    items = [self.queue.get()]
-    try:
-      for _ in range(9):
-        items.append(self.queue.get_nowait())
-    except Queue.Empty:
-      pass
-    return items
-
-  def _worker_thread(self):
-    """Sends the packets in a loop through HTTP POST."""
-    params = {
-        'Content-type': 'application/x-www-form-urlencoded',
-        'Accept': 'text/plain'
-    }
-    done = False
-    try:
-      while not done:
-        items = self._get_items()
-        if self._TERMINATE in items:
-          done = True
-          logging.debug('Worker thread exiting')
-          items.remove(self._TERMINATE)
-        url = self.url + self.resource
-        logging.debug('Sending %d items to %s: %r', len(items), url, items)
-        try:
-          data = [('p', json.dumps(item)) for item in items]
-          data.append(('password', self.password))
-          urllib.urlopen(url, urllib.urlencode(data), params).read()
-        except IOError as e:
-          logging.error(e)
-          for item in items:
-            self.queue.put(item)
-          if not done:
-            time.sleep(1)
-          # Don't retry if done.
-    except Exception as e:
-      traceback.print_exc()
-      errors.send_stack(e)
diff --git a/buildbot_json.py b/buildbot_json.py
deleted file mode 100755
index c8a0925..0000000
--- a/buildbot_json.py
+++ /dev/null
@@ -1,1455 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file at
-# http://src.chromium.org/viewvc/chrome/trunk/src/LICENSE
-# This file is NOT under GPL.
-
-"""Queries buildbot through the json interface.
-"""
-
-__author__ = 'maruel@chromium.org'
-__version__ = '1.2'
-
-import code
-import datetime
-import functools
-import json
-import logging
-import optparse
-import time
-import urllib
-import urllib2
-import sys
-
-try:
-  from natsort import natsorted
-except ImportError:
-  # natsorted is a simple helper to sort "naturally", e.g. "vm40" is sorted
-  # after "vm7". Defaults to normal sorting.
-  natsorted = sorted
-
-
-# These values are buildbot constants used for Build and BuildStep.
-# This line was copied from master/buildbot/status/builder.py.
-SUCCESS, WARNINGS, FAILURE, SKIPPED, EXCEPTION, RETRY = range(6)
-
-
-## Generic node caching code.
-
-
-class Node(object):
-  """Root class for all nodes in the graph.
-
-  Provides base functionality for any node in the graph, independent if it has
-  children or not or if its content can be addressed through an url or needs to
-  be fetched as part of another node.
-
-  self.printable_attributes is only used for self documentation and for str()
-  implementation.
-  """
-  printable_attributes = []
-
-  def __init__(self, parent, url):
-    self.printable_attributes = self.printable_attributes[:]
-    if url:
-      self.printable_attributes.append('url')
-      url = url.rstrip('/')
-    if parent is not None:
-      self.printable_attributes.append('parent')
-    self.url = url
-    self.parent = parent
-
-  def __str__(self):
-    return self.to_string()
-
-  def __repr__(self):
-    """Embeds key if present."""
-    key = getattr(self, 'key', None)
-    if key is not None:
-      return '<%s key=%s>' % (self.__class__.__name__, key)
-    cached_keys = getattr(self, 'cached_keys', None)
-    if cached_keys is not None:
-      return '<%s keys=%s>' % (self.__class__.__name__, cached_keys)
-    return super(Node, self).__repr__()
-
-  def to_string(self, maximum=100):
-    out = ['%s:' % self.__class__.__name__]
-    assert not 'printable_attributes' in self.printable_attributes
-
-    def limit(txt):
-      txt = str(txt)
-      if maximum > 0:
-        if len(txt) > maximum + 2:
-          txt = txt[:maximum] + '...'
-      return txt
-
-    for k in sorted(self.printable_attributes):
-      if k == 'parent':
-        # Avoid infinite recursion.
-        continue
-      out.append(limit('  %s: %r' % (k, getattr(self, k))))
-    return '\n'.join(out)
-
-  def refresh(self):
-    """Refreshes the data."""
-    self.discard()
-    return self.cache()
-
-  def cache(self):  # pragma: no cover
-    """Caches the data."""
-    raise NotImplementedError()
-
-  def discard(self):  # pragma: no cover
-    """Discards cached data.
-
-    Pretty much everything is temporary except completed Build.
-    """
-    raise NotImplementedError()
-
-  def read_non_json(self, suburl):
-    """Returns raw data for a suburl.
-
-    Contrary to self.read(), self.read_non_json() is always available since
-    suburl is rooted at the base url. read() is only accessible for resources
-    that have an URI.
-    """
-    return self.parent.read_non_json(suburl)
-
-
-class AddressableBaseDataNode(Node):  # pylint: disable=W0223
-  """A node that contains a dictionary of data that can be fetched with an url.
-
-  The node is directly addressable. It also often can be fetched by the parent.
-  """
-  printable_attributes = Node.printable_attributes + ['data']
-
-  def __init__(self, parent, url, data):
-    super(AddressableBaseDataNode, self).__init__(parent, url)
-    self._data = data
-
-  @property
-  def cached_data(self):
-    return self._data
-
-  @property
-  def data(self):
-    self.cache()
-    return self._data
-
-  def cache(self):
-    if self._data is None:
-      self._data = self._readall()
-      return True
-    return False
-
-  def discard(self):
-    self._data = None
-
-  def read(self, suburl):
-    assert self.url, self.__class__.__name__
-    url = self.url
-    if suburl:
-      url = '%s/%s' % (self.url, suburl)
-    return self.parent.read(url)
-
-  def _readall(self):
-    return self.read('')
-
-
-class AddressableDataNode(AddressableBaseDataNode):  # pylint: disable=W0223
-  """Automatically encodes the url."""
-
-  def __init__(self, parent, url, data):
-    super(AddressableDataNode, self).__init__(parent, urllib.quote(url), data)
-
-
-class NonAddressableDataNode(Node):  # pylint: disable=W0223
-  """A node that cannot be addressed by an unique url.
-
-  The data comes directly from the parent.
-  """
-  def __init__(self, parent, subkey):
-    super(NonAddressableDataNode, self).__init__(parent, None)
-    self.subkey = subkey
-
-  @property
-  def cached_data(self):
-    if self.parent.cached_data is None:
-      return None
-    return self.parent.cached_data[self.subkey]
-
-  @property
-  def data(self):
-    return self.parent.data[self.subkey]
-
-  def cache(self):
-    self.parent.cache()
-
-  def discard(self):  # pragma: no cover
-    """Avoid invalid state when parent recreate the object."""
-    raise AttributeError('Call parent discard() instead')
-
-
-class VirtualNodeList(Node):
-  """Base class for every node that has children.
-
-  Adds partial supports for keys and iterator functionality. 'key' can be a
-  string or a int. Not to be used directly.
-  """
-  printable_attributes = Node.printable_attributes + ['keys']
-
-  def __init__(self, parent, url):
-    super(VirtualNodeList, self).__init__(parent, url)
-    # Keeps the keys independently when ordering is needed.
-    self._is_cached = False
-    self._has_keys_cached = False
-
-  def __contains__(self, key):
-    """Enables 'if i in obj:'."""
-    return key in self.keys
-
-  def __iter__(self):
-    """Enables 'for i in obj:'. It returns children."""
-    self.cache_keys()
-    for key in self.keys:
-      yield self[key]
-
-  def __len__(self):
-    """Enables 'len(obj)' to get the number of childs."""
-    return len(self.keys)
-
-  def discard(self):
-    """Discards data.
-
-    The default behavior is to not invalidate cached keys. The only place where
-    keys need to be invalidated is with Builds.
-    """
-    self._is_cached = False
-    self._has_keys_cached = False
-
-  @property
-  def cached_children(self):  # pragma: no cover
-    """Returns an iterator over the children that are cached."""
-    raise NotImplementedError()
-
-  @property
-  def cached_keys(self):  # pragma: no cover
-    raise NotImplementedError()
-
-  @property
-  def keys(self):  # pragma: no cover
-    """Returns the keys for every children."""
-    raise NotImplementedError()
-
-  def __getitem__(self, key):  # pragma: no cover
-    """Returns a child, without fetching its data.
-
-    The children could be invalid since no verification is done.
-    """
-    raise NotImplementedError()
-
-  def cache(self):  # pragma: no cover
-    """Cache all the children."""
-    raise NotImplementedError()
-
-  def cache_keys(self):  # pragma: no cover
-    """Cache all children's keys."""
-    raise NotImplementedError()
-
-
-class NodeList(VirtualNodeList):  # pylint: disable=W0223
-  """Adds a cache of the keys."""
-  def __init__(self, parent, url):
-    super(NodeList, self).__init__(parent, url)
-    self._keys = []
-
-  @property
-  def cached_keys(self):
-    return self._keys
-
-  @property
-  def keys(self):
-    self.cache_keys()
-    return self._keys
-
-
-class NonAddressableNodeList(VirtualNodeList):  # pylint: disable=W0223
-  """A node that contains children but retrieves all its data from its parent.
-
-  I.e. there's no url to get directly this data.
-  """
-  # Child class object for children of this instance. For example, BuildSteps
-  # has BuildStep children.
-  _child_cls = None
-
-  def __init__(self, parent, subkey):
-    super(NonAddressableNodeList, self).__init__(parent, None)
-    self.subkey = subkey
-    assert (
-        not isinstance(self._child_cls, NonAddressableDataNode) and
-        issubclass(self._child_cls, NonAddressableDataNode)), (
-        self._child_cls.__name__)
-
-  @property
-  def cached_children(self):
-    if self.parent.cached_data is not None:
-      for i in xrange(len(self.parent.cached_data[self.subkey])):
-        yield self[i]
-
-  @property
-  def cached_data(self):
-    if self.parent.cached_data is None:
-      return None
-    return self.parent.data.get(self.subkey, None)
-
-  @property
-  def cached_keys(self):
-    if self.parent.cached_data is None:
-      return None
-    return range(len(self.parent.data.get(self.subkey, [])))
-
-  @property
-  def data(self):
-    return self.parent.data[self.subkey]
-
-  def cache(self):
-    self.parent.cache()
-
-  def cache_keys(self):
-    self.parent.cache()
-
-  def discard(self):  # pragma: no cover
-    """Avoid infinite recursion by having the caller calls the parent's
-    discard() explicitely.
-    """
-    raise AttributeError('Call parent discard() instead')
-
-  def __iter__(self):
-    """Enables 'for i in obj:'. It returns children."""
-    if self.data:
-      for i in xrange(len(self.data)):
-        yield self[i]
-
-  def __getitem__(self, key):
-    """Doesn't cache the value, it's not needed.
-
-    TODO(maruel): Cache?
-    """
-    if isinstance(key, int) and key < 0:
-      key = len(self.data) + key
-    # pylint: disable=E1102
-    return self._child_cls(self, key)
-
-
-class AddressableNodeList(NodeList):
-  """A node that has children that can be addressed with an url."""
-
-  # Child class object for children of this instance. For example, Builders has
-  # Builder children and Builds has Build children.
-  _child_cls = None
-
-  def __init__(self, parent, url):
-    super(AddressableNodeList, self).__init__(parent, url)
-    self._cache = {}
-    assert (
-        not isinstance(self._child_cls, AddressableDataNode) and
-        issubclass(self._child_cls, AddressableDataNode)), (
-            self._child_cls.__name__)
-
-  @property
-  def cached_children(self):
-    for item in self._cache.itervalues():
-      if item.cached_data is not None:
-        yield item
-
-  @property
-  def cached_keys(self):
-    return self._cache.keys()
-
-  def __getitem__(self, key):
-    """Enables 'obj[i]'."""
-    if self._has_keys_cached and not key in self._keys:
-      raise KeyError(key)
-
-    if not key in self._cache:
-      # Create an empty object.
-      self._create_obj(key, None)
-    return self._cache[key]
-
-  def cache(self):
-    if not self._is_cached:
-      data = self._readall()
-      for key in sorted(data):
-        self._create_obj(key, data[key])
-      self._is_cached = True
-      self._has_keys_cached = True
-
-  def cache_partial(self, children):
-    """Caches a partial number of children.
-
-    This method is more efficient since it does a single request for all the
-    children instead of one request per children.
-
-    It only grab objects not already cached.
-    """
-    # pylint: disable=W0212
-    if not self._is_cached:
-      to_fetch = [
-          child for child in children
-          if not (child in self._cache and self._cache[child].cached_data)
-      ]
-      if to_fetch:
-        # Similar to cache(). The only reason to sort is to simplify testing.
-        params = '&'.join(
-            'select=%s' % urllib.quote(str(v)) for v in sorted(to_fetch))
-        data = self.read('?' + params)
-        for key in sorted(data):
-          self._create_obj(key, data[key])
-
-  def cache_keys(self):
-    """Implement to speed up enumeration. Defaults to call cache()."""
-    if not self._has_keys_cached:
-      self.cache()
-      assert self._has_keys_cached
-
-  def discard(self):
-    """Discards temporary children."""
-    super(AddressableNodeList, self).discard()
-    for v in self._cache.itervalues():
-      v.discard()
-
-  def read(self, suburl):
-    assert self.url, self.__class__.__name__
-    url = self.url
-    if suburl:
-      url = '%s/%s' % (self.url, suburl)
-    return self.parent.read(url)
-
-  def _create_obj(self, key, data):
-    """Creates an object of type self._child_cls."""
-    # pylint: disable=E1102
-    obj = self._child_cls(self, key, data)
-    # obj.key and key may be different.
-    # No need to overide cached data with None.
-    if data is not None or obj.key not in self._cache:
-      self._cache[obj.key] = obj
-    if obj.key not in self._keys:
-      self._keys.append(obj.key)
-
-  def _readall(self):
-    return self.read('')
-
-
-class SubViewNodeList(VirtualNodeList):  # pylint: disable=W0223
-  """A node that shows a subset of children that comes from another structure.
-
-  The node is not addressable.
-
-  E.g. the keys are retrieved from parent but the actual data comes from
-  virtual_parent.
-  """
-
-  def __init__(self, parent, virtual_parent, subkey):
-    super(SubViewNodeList, self).__init__(parent, None)
-    self.subkey = subkey
-    self.virtual_parent = virtual_parent
-    assert isinstance(self.parent, AddressableDataNode)
-    assert isinstance(self.virtual_parent, NodeList)
-
-  @property
-  def cached_children(self):
-    if self.parent.cached_data is not None:
-      for item in self.keys:
-        if item in self.virtual_parent.keys:
-          child = self[item]
-          if child.cached_data is not None:
-            yield child
-
-  @property
-  def cached_keys(self):
-    return (self.parent.cached_data or {}).get(self.subkey, [])
-
-  @property
-  def keys(self):
-    self.cache_keys()
-    return self.parent.data.get(self.subkey, [])
-
-  def cache(self):
-    """Batch request for each child in a single read request."""
-    if not self._is_cached:
-      self.virtual_parent.cache_partial(self.keys)
-      self._is_cached = True
-
-  def cache_keys(self):
-    if not self._has_keys_cached:
-      self.parent.cache()
-      self._has_keys_cached = True
-
-  def discard(self):
-    if self.parent.cached_data is not None:
-      for child in self.virtual_parent.cached_children:
-        if child.key in self.keys:
-          child.discard()
-      self.parent.discard()
-    super(SubViewNodeList, self).discard()
-
-  def __getitem__(self, key):
-    """Makes sure the key is in our key but grab it from the virtual parent."""
-    return self.virtual_parent[key]
-
-  def __iter__(self):
-    self.cache()
-    return super(SubViewNodeList, self).__iter__()
-
-
-###############################################################################
-## Buildbot-specific code
-
-
-class Slave(AddressableDataNode):
-  printable_attributes = AddressableDataNode.printable_attributes + [
-    'name', 'key', 'connected', 'version',
-  ]
-
-  def __init__(self, parent, name, data):
-    super(Slave, self).__init__(parent, name, data)
-    self.name = name
-    self.key = self.name
-    # TODO(maruel): Add SlaveBuilders and a 'builders' property.
-    # TODO(maruel): Add a 'running_builds' property.
-
-  @property
-  def connected(self):
-    return self.data.get('connected', False)
-
-  @property
-  def version(self):
-    return self.data.get('version')
-
-
-class Slaves(AddressableNodeList):
-  _child_cls = Slave
-  printable_attributes = AddressableNodeList.printable_attributes + ['names']
-
-  def __init__(self, parent):
-    super(Slaves, self).__init__(parent, 'slaves')
-
-  @property
-  def names(self):
-    return self.keys
-
-
-class BuilderSlaves(SubViewNodeList):
-  """Similar to Slaves but only list slaves connected to a specific builder.
-  """
-  printable_attributes = SubViewNodeList.printable_attributes + ['names']
-
-  def __init__(self, parent):
-    super(BuilderSlaves, self).__init__(
-        parent, parent.parent.parent.slaves, 'slaves')
-
-  @property
-  def names(self):
-    return self.keys
-
-
-class BuildStep(NonAddressableDataNode):
-  printable_attributes = NonAddressableDataNode.printable_attributes + [
-    'name', 'number', 'start_time', 'end_time', 'duration', 'is_started',
-    'is_finished', 'is_running',
-    'result', 'simplified_result',
-  ]
-
-  def __init__(self, parent, number):
-    """It's already pre-loaded by definition since the data is retrieve via the
-    Build object.
-    """
-    assert isinstance(number, int)
-    super(BuildStep, self).__init__(parent, number)
-    self.number = number
-
-  @property
-  def build(self):
-    """Returns the Build object for this BuildStep."""
-    # Build.BuildSteps.BuildStep
-    return self.parent.parent
-
-  @property
-  def start_time(self):
-    if self.data.get('times'):
-      return int(round(self.data['times'][0]))
-
-  @property
-  def end_time(self):
-    times = self.data.get('times')
-    if times and len(times) == 2 and times[1]:
-      return int(round(times[1]))
-
-  @property
-  def duration(self):
-    if self.start_time:
-      return (self.end_time or int(round(time.time()))) - self.start_time
-
-  @property
-  def name(self):
-    return self.data['name']
-
-  @property
-  def is_started(self):
-    return self.data.get('isStarted', False)
-
-  @property
-  def is_finished(self):
-    return self.data.get('isFinished', False)
-
-  @property
-  def is_running(self):
-    return self.is_started and not self.is_finished
-
-  @property
-  def result(self):
-    result = self.data.get('results')
-    if result is None:
-      # results may be 0, in that case with filter=1, the value won't be
-      # present.
-      if self.data.get('isFinished'):
-        result = self.data.get('results', 0)
-    while isinstance(result, list):
-      result = result[0]
-    return result
-
-  @property
-  def simplified_result(self):
-    """Returns a simplified 3 state value, True, False or None."""
-    result = self.result
-    if result in (SUCCESS, WARNINGS):
-      return True
-    elif result in (FAILURE, EXCEPTION, RETRY):
-      return False
-    assert result in (None, SKIPPED), (result, self.data)
-    return None
-
-  @property
-  def stdio(self):
-    """Returns the stdio for this step or None if not available."""
-    # Parents ordering is BuildSteps / Build / Builds / Builders
-    # A bit hackish but works.
-    build = self.build
-    builder = build.builder
-    suburl = 'builders/%s/builds/%d/steps/%s/logs/stdio/text' % (
-        builder.name, build.number, self.name)
-    return self.read_non_json(suburl)
-
-
-class BuildSteps(NonAddressableNodeList):
-  """Duplicates keys to support lookup by both step number and step name."""
-  printable_attributes = NonAddressableNodeList.printable_attributes + [
-    'failed',
-  ]
-  _child_cls = BuildStep
-
-  def __init__(self, parent):
-    """It's already pre-loaded by definition since the data is retrieve via the
-    Build object.
-    """
-    super(BuildSteps, self).__init__(parent, 'steps')
-
-  @property
-  def keys(self):
-    """Returns the steps name in order."""
-    return [i['name'] for i in (self.data or [])]
-
-  @property
-  def failed(self):
-    """Shortcuts that lists the step names of steps that failed."""
-    return [step.name for step in self if step.simplified_result is False]
-
-  def __getitem__(self, key):
-    """Accept step name in addition to index number."""
-    if isinstance(key, basestring):
-      # It's a string, try to find the corresponding index.
-      for i, step in enumerate(self.data):
-        if step['name'] == key:
-          key = i
-          break
-      else:
-        raise KeyError(key)
-    return super(BuildSteps, self).__getitem__(key)
-
-
-class Build(AddressableDataNode):
-  printable_attributes = AddressableDataNode.printable_attributes + [
-    'key', 'number', 'steps', 'blame', 'reason', 'revision', 'result',
-    'simplified_result', 'start_time', 'end_time', 'duration', 'slave',
-    'properties', 'completed',
-  ]
-
-  def __init__(self, parent, key, data):
-    super(Build, self).__init__(parent, str(key), data)
-    self.number = int(key)
-    self.key = self.number
-    self.steps = BuildSteps(self)
-
-  @property
-  def blame(self):
-    return self.data.get('blame', [])
-
-  @property
-  def builder(self):
-    """Returns the Builder object.
-
-    Goes up the hierarchy to find the Buildbot.builders[builder] instance.
-    """
-    return self.parent.parent.parent.parent.builders[self.data['builderName']]
-
-  @property
-  def start_time(self):
-    if self.data.get('times'):
-      return int(round(self.data['times'][0]))
-
-  @property
-  def end_time(self):
-    times = self.data.get('times')
-    if times and len(times) == 2 and times[1]:
-      return int(round(times[1]))
-
-  @property
-  def duration(self):
-    if self.start_time:
-      return (self.end_time or int(round(time.time()))) - self.start_time
-
-  @property
-  def eta(self):
-    return self.data.get('eta', 0)
-
-  @property
-  def completed(self):
-    return self.data.get('currentStep') is None
-
-  @property
-  def properties(self):
-    return self.data.get('properties', [])
-
-  @property
-  def properties_as_dict(self):
-    """Converts the 3-tuple properties into a dict(p[0]: p[1]) and ignores the
-    property's source.
-    """
-    return dict((p[0], p[1]) for p in self.properties)
-
-  @property
-  def reason(self):
-    return self.data.get('reason')
-
-  @property
-  def result(self):
-    result = self.data.get('results')
-    while isinstance(result, list):
-      result = result[0]
-    if result is None and self.steps:
-      # results may be 0, in that case with filter=1, the value won't be
-      # present.
-      result = self.steps[-1].result
-    return result
-
-  @property
-  def revision(self):
-    return self.data.get('sourceStamp', {}).get('revision')
-
-  @property
-  def simplified_result(self):
-    """Returns a simplified 3 state value, True, False or None."""
-    result = self.result
-    if result in (SUCCESS, WARNINGS, SKIPPED):
-      return True
-    elif result in (FAILURE, EXCEPTION, RETRY):
-      return False
-    assert result is None, (result, self.data)
-    return None
-
-  @property
-  def slave(self):
-    """Returns the Slave object.
-
-    Goes up the hierarchy to find the Buildbot.slaves[slave] instance.
-    """
-    return self.parent.parent.parent.parent.slaves[self.data['slave']]
-
-  def discard(self):
-    """Completed Build isn't discarded."""
-    if self._data and self.result is None:
-      assert not self.steps or not self.steps[-1].data.get('isFinished')
-      self._data = None
-
-
-class CurrentBuilds(SubViewNodeList):
-  """Lists of the current builds."""
-  def __init__(self, parent):
-    super(CurrentBuilds, self).__init__(
-        parent, parent.builds, 'currentBuilds')
-
-
-class PendingBuilds(AddressableDataNode):
-  def __init__(self, parent):
-    super(PendingBuilds, self).__init__(parent, 'pendingBuilds', None)
-
-
-class Builds(AddressableNodeList):
-  """Supports iteration.
-
-  Recommends using .cache() to speed up if a significant number of builds are
-  iterated over.
-  """
-  _child_cls = Build
-
-  def __init__(self, parent):
-    super(Builds, self).__init__(parent, 'builds')
-
-  def __getitem__(self, key):
-    """Adds supports for negative reference and enables retrieving non-cached
-    builds.
-
-    e.g. -1 is the last build, -2 is the previous build before the last one.
-    """
-    key = int(key)
-    if key < 0:
-      # Convert negative to positive build number.
-      self.cache_keys()
-      # Since the negative value can be outside of the cache keys range, use the
-      # highest key value and calculate from it.
-      key = max(self._keys) + key + 1
-
-    if not key in self._cache:
-      # Create an empty object.
-      self._create_obj(key, None)
-    return self._cache[key]
-
-  def __iter__(self):
-    """Returns cached Build objects in reversed order.
-
-    The most recent build is returned first and then in reverse chronological
-    order, up to the oldest cached build by the server. Older builds can be
-    accessed but will trigger significantly more I/O so they are not included by
-    default in the iteration.
-
-    To access the older builds, use self.iterall() instead.
-    """
-    self.cache()
-    return reversed(self._cache.values())
-
-  def iterall(self):
-    """Returns Build objects in decreasing order unbounded up to build 0.
-
-    The most recent build is returned first and then in reverse chronological
-    order. Older builds can be accessed and will trigger significantly more I/O
-    so use this carefully.
-    """
-    # Only cache keys here.
-    self.cache_keys()
-    if self._keys:
-      for i in xrange(max(self._keys), -1, -1):
-        yield self[i]
-
-  def cache_keys(self):
-    """Grabs the keys (build numbers) from the builder."""
-    if not self._has_keys_cached:
-      for i in self.parent.data.get('cachedBuilds', []):
-        i = int(i)
-        self._cache.setdefault(i, Build(self, i, None))
-        if i not in self._keys:
-          self._keys.append(i)
-      self._has_keys_cached = True
-
-  def discard(self):
-    super(Builds, self).discard()
-    # Can't keep keys.
-    self._has_keys_cached = False
-
-  def _readall(self):
-    return self.read('_all')
-
-
-class Builder(AddressableDataNode):
-  printable_attributes = AddressableDataNode.printable_attributes + [
-    'name', 'key', 'builds', 'slaves', 'pending_builds', 'current_builds',
-  ]
-
-  def __init__(self, parent, name, data):
-    super(Builder, self).__init__(parent, name, data)
-    self.name = name
-    self.key = name
-    self.builds = Builds(self)
-    self.slaves = BuilderSlaves(self)
-    self.current_builds = CurrentBuilds(self)
-    self.pending_builds = PendingBuilds(self)
-
-  def discard(self):
-    super(Builder, self).discard()
-    self.builds.discard()
-    self.slaves.discard()
-    self.current_builds.discard()
-
-
-class Builders(AddressableNodeList):
-  """Root list of builders."""
-  _child_cls = Builder
-
-  def __init__(self, parent):
-    super(Builders, self).__init__(parent, 'builders')
-
-
-class Buildbot(AddressableBaseDataNode):
-  """If a master restart occurs, this object should be recreated as it caches
-  data.
-  """
-  # Throttle fetches to not kill the server.
-  auto_throttle = None
-  printable_attributes = AddressableDataNode.printable_attributes + [
-    'slaves', 'builders', 'last_fetch',
-  ]
-
-  def __init__(self, url):
-    super(Buildbot, self).__init__(None, url, None)
-    self._builders = Builders(self)
-    self._slaves = Slaves(self)
-    self.last_fetch = None
-
-  @property
-  def builders(self):
-    return self._builders
-
-  @property
-  def slaves(self):
-    return self._slaves
-
-  def discard(self):
-    """Discards information about Builders and Slaves."""
-    super(Buildbot, self).discard()
-    self._builders.discard()
-    self._slaves.discard()
-
-  def read(self, suburl):
-    """Returns json decoded data for the suburl."""
-    if self.auto_throttle:
-      if self.last_fetch:
-        delta = datetime.datetime.utcnow() - self.last_fetch
-        remaining = (datetime.timedelta(seconds=self.auto_throttle) -
-            delta)
-        if remaining > datetime.timedelta(seconds=0):
-          logging.debug('Sleeping for %ss' % remaining)
-          time.sleep(remaining.seconds)
-      self.last_fetch = datetime.datetime.utcnow()
-    url = '%s/json/%s' % (self.url, suburl)
-    if '?' in url:
-      url += '&filter=1'
-    else:
-      url += '?filter=1'
-    logging.debug('read(%s)' % suburl)
-    try:
-      channel = urllib.urlopen(url)
-      data = channel.read()
-    except IOError as e:
-      logging.warning('caught %s while fetching "%s"; re-throwing' % (
-                      str(e), url))
-      raise
-    try:
-      return json.loads(data)
-    except ValueError:
-      if channel.getcode() >= 400:
-        # Convert it into an HTTPError for easier processing.
-        raise urllib2.HTTPError(
-            url, channel.getcode(), '%s:\n%s' % (url, data), channel.headers,
-            None)
-      raise
-
-  def read_non_json(self, suburl):
-    """Returns data for an arbitrary suburl outside of the /json/ path."""
-    logging.debug('read_non_json(%s)' % suburl)
-    return urllib.urlopen('%s/%s' % (self.url, suburl)).read()
-
-  def _readall(self):
-    return self.read('project')
-
-
-###############################################################################
-## Controller code
-
-
-def usage(more):
-  def hook(fn):
-    fn.func_usage_more = more
-    return fn
-  return hook
-
-
-def need_buildbot(fn):
-  """Post-parse args to create a buildbot object."""
-  @functools.wraps(fn)
-  def hook(parser, args, *extra_args, **kwargs):
-    old_parse_args = parser.parse_args
-    def new_parse_args(args):
-      options, args = old_parse_args(args)
-      if len(args) < 1:
-        parser.error('Need to pass the root url of the buildbot')
-      url = args.pop(0)
-      if not url.startswith('http'):
-        url = 'http://' + url
-      buildbot = Buildbot(url)
-      buildbot.auto_throttle = options.throttle
-      return options, args, buildbot
-    parser.parse_args = new_parse_args
-    # Call the original function with the modified parser.
-    return fn(parser, args, *extra_args, **kwargs)
-
-  hook.func_usage_more = '[options] <url>'
-  return hook
-
-
-@need_buildbot
-def CMDpending(parser, args):
-  """Lists pending jobs."""
-  parser.add_option(
-    '-b', '--builder', dest='builders', action='append', default=[],
-    help='Builders to filter on')
-  options, args, buildbot = parser.parse_args(args)
-  if args:
-    parser.error('Unrecognized parameters: %s' % ' '.join(args))
-  if not options.builders:
-    options.builders = buildbot.builders.keys
-  for builder in options.builders:
-    builder = buildbot.builders[builder]
-    pending_builds = builder.data.get('pendingBuilds', 0)
-    if not pending_builds:
-      continue
-    print 'Builder %s: %d' % (builder.name, pending_builds)
-    if not options.quiet:
-      for pending in builder.pending_builds.data:
-        if 'revision' in pending['source']:
-          print '  revision: %s' % pending['source']['revision']
-        for change in pending['source']['changes']:
-          print '  change:'
-          print '    comment: %r' % unicode(change['comments'][:50])
-          print '    who:     %s' % change['who']
-  return 0
-
-
-@usage('[options] <url> [commands] ...')
-@need_buildbot
-def CMDrun(parser, args):
-  """Runs commands passed as parameters.
-
-  When passing commands on the command line, each command will be run as if it
-  was on its own line.
-  """
-  parser.add_option('-f', '--file', help='Read script from file')
-  parser.add_option(
-      '-i', dest='use_stdin', action='store_true', help='Read script on stdin')
-  # Variable 'buildbot' is not used directly.
-  # pylint: disable=W0612
-  options, args, buildbot = parser.parse_args(args)
-  if (bool(args) + bool(options.use_stdin) + bool(options.file)) != 1:
-    parser.error('Need to pass only one of: <commands>, -f <file> or -i')
-  if options.use_stdin:
-    cmds = sys.stdin.read()
-  elif options.file:
-    cmds = open(options.file).read()
-  else:
-    cmds = '\n'.join(args)
-  compiled = compile(cmds, '<cmd line>', 'exec')
-  eval(compiled, globals(), locals())
-  return 0
-
-
-@need_buildbot
-def CMDinteractive(parser, args):
-  """Runs an interactive shell to run queries."""
-  _, args, buildbot = parser.parse_args(args)
-  if args:
-    parser.error('Unrecognized parameters: %s' % ' '.join(args))
-  prompt = (
-      'Buildbot interactive console for "%s".\n'
-      'Hint: Start with typing: \'buildbot.printable_attributes\' or '
-      '\'print str(buildbot)\' to explore.') % buildbot.url
-  local_vars = {
-      'buildbot': buildbot,
-      'b': buildbot,
-  }
-  code.interact(prompt, None, local_vars)
-
-
-@need_buildbot
-def CMDidle(parser, args):
-  """Lists idle slaves."""
-  return find_idle_busy_slaves(parser, args, True)
-
-
-@need_buildbot
-def CMDbusy(parser, args):
-  """Lists idle slaves."""
-  return find_idle_busy_slaves(parser, args, False)
-
-
-@need_buildbot
-def CMDdisconnected(parser, args):
-  """Lists disconnected slaves."""
-  _, args, buildbot = parser.parse_args(args)
-  if args:
-    parser.error('Unrecognized parameters: %s' % ' '.join(args))
-  for slave in buildbot.slaves:
-    if not slave.connected:
-      print slave.name
-  return 0
-
-
-def find_idle_busy_slaves(parser, args, show_idle):
-  parser.add_option(
-    '-b', '--builder', dest='builders', action='append', default=[],
-    help='Builders to filter on')
-  parser.add_option(
-    '-s', '--slave', dest='slaves', action='append', default=[],
-    help='Slaves to filter on')
-  options, args, buildbot = parser.parse_args(args)
-  if args:
-    parser.error('Unrecognized parameters: %s' % ' '.join(args))
-  if not options.builders:
-    options.builders = buildbot.builders.keys
-  for builder in options.builders:
-    builder = buildbot.builders[builder]
-    if options.slaves:
-      # Only the subset of slaves connected to the builder.
-      slaves = list(set(options.slaves).intersection(set(builder.slaves.names)))
-      if not slaves:
-        continue
-    else:
-      slaves = builder.slaves.names
-    busy_slaves = [build.slave.name for build in builder.current_builds]
-    if show_idle:
-      slaves = natsorted(set(slaves) - set(busy_slaves))
-    else:
-      slaves = natsorted(set(slaves) & set(busy_slaves))
-    if options.quiet:
-      for slave in slaves:
-        print slave
-    else:
-      if slaves:
-        print 'Builder %s: %s' % (builder.name, ', '.join(slaves))
-  return 0
-
-
-def last_failure(
-    buildbot, builders=None, slaves=None, steps=None, no_cache=False):
-  """Generator returning Build object that were the last failure with the
-  specific filters.
-  """
-  builders = builders or buildbot.builders.keys
-  for builder in builders:
-    builder = buildbot.builders[builder]
-    if slaves:
-      # Only the subset of slaves connected to the builder.
-      builder_slaves = list(set(slaves).intersection(set(builder.slaves.names)))
-      if not builder_slaves:
-        continue
-    else:
-      builder_slaves = builder.slaves.names
-
-    if not no_cache and len(builder.slaves) > 2:
-      # Unless you just want the last few builds, it's often faster to
-      # fetch the whole thing at once, at the cost of a small hickup on
-      # the buildbot.
-      # TODO(maruel): Cache only N last builds or all builds since
-      # datetime.
-      builder.builds.cache()
-
-    found = []
-    for build in builder.builds:
-      if build.slave.name not in builder_slaves or build.slave.name in found:
-        continue
-      # Only add the slave for the first completed build but still look for
-      # incomplete builds.
-      if build.completed:
-        found.append(build.slave.name)
-
-      if steps:
-        if any(build.steps[step].simplified_result is False for step in steps):
-          yield build
-      elif build.simplified_result is False:
-        yield build
-
-      if len(found) == len(builder_slaves):
-        # Found all the slaves, quit.
-        break
-
-
-@need_buildbot
-def CMDlast_failure(parser, args):
-  """Lists all slaves that failed on that step on their last build.
-
-  Example: to find all slaves where their last build was a compile failure,
-  run with --step compile"""
-  parser.add_option(
-    '-S', '--step', dest='steps', action='append', default=[],
-    help='List all slaves that failed on that step on their last build')
-  parser.add_option(
-    '-b', '--builder', dest='builders', action='append', default=[],
-    help='Builders to filter on')
-  parser.add_option(
-    '-s', '--slave', dest='slaves', action='append', default=[],
-    help='Slaves to filter on')
-  parser.add_option(
-    '-n', '--no_cache', action='store_true',
-    help='Don\'t load all builds at once')
-  options, args, buildbot = parser.parse_args(args)
-  if args:
-    parser.error('Unrecognized parameters: %s' % ' '.join(args))
-  print_builders = not options.quiet and len(options.builders) != 1
-  last_builder = None
-  for build in last_failure(
-      buildbot, builders=options.builders,
-      slaves=options.slaves, steps=options.steps,
-      no_cache=options.no_cache):
-
-    if print_builders and last_builder != build.builder:
-      print build.builder.name
-      last_builder = build.builder
-
-    if options.quiet:
-      if options.slaves:
-        print '%s: %s' % (build.builder.name, build.slave.name)
-      else:
-        print build.slave.name
-    else:
-      out = '%d on %s: blame:%s' % (
-          build.number, build.slave.name, ', '.join(build.blame))
-      if print_builders:
-        out = '  ' + out
-      print out
-
-      if len(options.steps) != 1:
-        for step in build.steps:
-          if step.simplified_result is False:
-            # Assume the first line is the text name anyway.
-            summary = ', '.join(step.data['text'][1:])[:40]
-            out = '  %s: "%s"' % (step.data['name'], summary)
-            if print_builders:
-              out = '  ' + out
-            print out
-  return 0
-
-
-@need_buildbot
-def CMDcurrent(parser, args):
-  """Lists current jobs."""
-  parser.add_option(
-    '-b', '--builder', dest='builders', action='append', default=[],
-    help='Builders to filter on')
-  parser.add_option(
-    '--blame', action='store_true', help='Only print the blame list')
-  options, args, buildbot = parser.parse_args(args)
-  if args:
-    parser.error('Unrecognized parameters: %s' % ' '.join(args))
-  if not options.builders:
-    options.builders = buildbot.builders.keys
-
-  if options.blame:
-    blame = set()
-    for builder in options.builders:
-      for build in buildbot.builders[builder].current_builds:
-        if build.blame:
-          for blamed in build.blame:
-            blame.add(blamed)
-    print '\n'.join(blame)
-    return 0
-
-  for builder in options.builders:
-    builder = buildbot.builders[builder]
-    if not options.quiet and builder.current_builds:
-      print builder.name
-    for build in builder.current_builds:
-      if options.quiet:
-        print build.slave.name
-      else:
-        out = '%4d: slave=%10s' % (build.number, build.slave.name)
-        out += '  duration=%5d' % (build.duration or 0)
-        if build.eta:
-          out += '  eta=%5.0f' % build.eta
-        else:
-          out += '           '
-        if build.blame:
-          out += '  blame=' + ', '.join(build.blame)
-        print out
-
-  return 0
-
-
-@need_buildbot
-def CMDbuilds(parser, args):
-  """Lists all builds.
-
-  Example: to find all builds on a single slave, run with -b bar -s foo
-  """
-  parser.add_option(
-    '-r', '--result', type='int', help='Build result to filter on')
-  parser.add_option(
-    '-b', '--builder', dest='builders', action='append', default=[],
-    help='Builders to filter on')
-  parser.add_option(
-    '-s', '--slave', dest='slaves', action='append', default=[],
-    help='Slaves to filter on')
-  parser.add_option(
-    '-n', '--no_cache', action='store_true',
-    help='Don\'t load all builds at once')
-  options, args, buildbot = parser.parse_args(args)
-  if args:
-    parser.error('Unrecognized parameters: %s' % ' '.join(args))
-  builders = options.builders or buildbot.builders.keys
-  for builder in builders:
-    builder = buildbot.builders[builder]
-    for build in builder.builds:
-      if not options.slaves or build.slave.name in options.slaves:
-        if options.quiet:
-          out = ''
-          if options.builders:
-            out += '%s/' % builder.name
-          if len(options.slaves) != 1:
-            out += '%s/' % build.slave.name
-          out += '%d  revision:%s  result:%s  blame:%s' % (
-              build.number, build.revision, build.result, ','.join(build.blame))
-          print out
-        else:
-          print build
-  return 0
-
-
-@need_buildbot
-def CMDcount(parser, args):
-  """Count the number of builds that occured during a specific period.
-  """
-  parser.add_option(
-    '-o', '--over', type='int', help='Number of seconds to look for')
-  parser.add_option(
-    '-b', '--builder', dest='builders', action='append', default=[],
-    help='Builders to filter on')
-  options, args, buildbot = parser.parse_args(args)
-  if args:
-    parser.error('Unrecognized parameters: %s' % ' '.join(args))
-  if not options.over:
-    parser.error(
-        'Specify the number of seconds, e.g. --over 86400 for the last 24 '
-        'hours')
-  builders = options.builders or buildbot.builders.keys
-  counts = {}
-  since = time.time() - options.over
-  for builder in builders:
-    builder = buildbot.builders[builder]
-    counts[builder.name] = 0
-    if not options.quiet:
-      print builder.name
-    for build in builder.builds.iterall():
-      try:
-        start_time = build.start_time
-      except urllib2.HTTPError:
-        # The build was probably trimmed.
-        print >> sys.stderr, (
-            'Failed to fetch build %s/%d' % (builder.name, build.number))
-        continue
-      if start_time >= since:
-        counts[builder.name] += 1
-      else:
-        break
-    if not options.quiet:
-      print '.. %d' % counts[builder.name]
-
-  align_name = max(len(b) for b in counts)
-  align_number = max(len(str(c)) for c in counts.itervalues())
-  for builder in sorted(counts):
-    print '%*s: %*d' % (align_name, builder, align_number, counts[builder])
-  print 'Total: %d' % sum(counts.itervalues())
-  return 0
-
-
-class OptionParser(optparse.OptionParser):
-  def parse_args(self, args=None, values=None):
-    """Adds common parsing."""
-    options, args = optparse.OptionParser.parse_args(self, args, values)
-    levels = (logging.WARNING, logging.INFO, logging.DEBUG)
-    logging.basicConfig(level=levels[min(options.verbose, len(levels)-1)])
-    return options, args
-
-  def format_description(self, _):
-    """Removes description formatting."""
-    return self.description
-
-
-def gen_parser():
-  """Returns an OptionParser instance with default options.
-
-  It should be then processed with gen_usage() before being used.
-  """
-  parser = OptionParser(version=__version__)
-  parser.add_option(
-    '-v', '--verbose', action='count', default=0,
-    help='Use multiple times to increase logging leve')
-  parser.add_option(
-    '-q', '--quiet', action='store_true',
-    help='Reduces the output to be parsed by scripts, independent of -v')
-  parser.add_option(
-    '--throttle', type='float',
-    help='Minimum delay to sleep between requests')
-  return parser
-
-
-###############################################################################
-## Generic subcommand handling code
-
-
-def Command(name):
-  return getattr(sys.modules[__name__], 'CMD' + name, None)
-
-
-@usage('<command>')
-def CMDhelp(parser, args):
-  """Print list of commands or use 'help <command>'."""
-  _, args = parser.parse_args(args)
-  if len(args) == 1:
-    return main(args + ['--help'])
-  parser.print_help()
-  return 0
-
-
-def gen_usage(parser, command):
-  """Modifies an OptionParser object with the command's documentation.
-
-  The documentation is taken from the function's docstring.
-  """
-  obj = Command(command)
-  more = getattr(obj, 'func_usage_more')
-  # OptParser.description prefer nicely non-formatted strings.
-  parser.description = obj.__doc__ + '\n'
-  parser.set_usage('usage: %%prog %s %s' % (command, more))
-
-
-def main(args=None):
-  # Do it late so all commands are listed.
-  # pylint: disable=E1101
-  CMDhelp.__doc__ += '\n\nCommands are:\n' + '\n'.join(
-      '  %-12s %s' % (fn[3:], Command(fn[3:]).__doc__.split('\n', 1)[0])
-      for fn in dir(sys.modules[__name__]) if fn.startswith('CMD'))
-
-  parser = gen_parser()
-  if args is None:
-    args = sys.argv[1:]
-  if args:
-    command = Command(args[0])
-    if command:
-      # "fix" the usage and the description now that we know the subcommand.
-      gen_usage(parser, args[0])
-      return command(parser, args[1:])
-
-  # Not a known command. Default to help.
-  gen_usage(parser, 'help')
-  return CMDhelp(parser, args)
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/codereview.settings b/codereview.settings
deleted file mode 100644
index 7339497..0000000
--- a/codereview.settings
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file is used by gcl to get repository specific information.
-CODE_REVIEW_SERVER: codereview.chromium.org
-CC_LIST: chromium-reviews@chromium.org
-VIEW_VC: http://src.chromium.org/viewvc/chrome?view=rev&revision=
-GITCL_PREUPLOAD: http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/git-cl-upload-hook?revision=HEAD
-GITCL_PREDCOMMIT: http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/git-cl-upload-hook?revision=HEAD
diff --git a/commit_queue.py b/commit_queue.py
deleted file mode 100755
index fce6c33..0000000
--- a/commit_queue.py
+++ /dev/null
@@ -1,397 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Commit queue executable.
-
-Reuse Rietveld and the Chromium Try Server to process and automatically commit
-patches.
-"""
-
-import logging
-import logging.handlers
-import optparse
-import os
-import shutil
-import signal
-import socket
-import sys
-import tempfile
-import time
-
-import find_depot_tools  # pylint: disable=W0611
-import checkout
-import fix_encoding
-import rietveld
-import subprocess2
-
-import async_push
-import cq_alerts
-import creds
-import errors
-import projects
-import sig_handler
-
-
-ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
-
-
-class OnlyIssueRietveld(rietveld.Rietveld):
-  """Returns a single issue for end-to-end in prod testing."""
-  def __init__(self, url, email, password, extra_headers, only_issue):
-    super(OnlyIssueRietveld, self).__init__(url, email, password, extra_headers)
-    self._only_issue = only_issue
-
-  def get_pending_issues(self):
-    """If it's set to return a single issue, only return this one."""
-    if self._only_issue:
-      return [self._only_issue]
-    return []
-
-  def get_issue_properties(self, issue, messages):
-    """Hacks the result to fake that the issue has the commit bit set."""
-    data = super(OnlyIssueRietveld, self).get_issue_properties(issue, messages)
-    if issue == self._only_issue:
-      data['commit'] = True
-    return data
-
-  def set_flag(self, issue, patchset, flag, value):
-    if issue == self._only_issue and flag == 'commit' and value == 'False':
-      self._only_issue = None
-    return super(OnlyIssueRietveld, self).set_flag(issue, patchset, flag, value)
-
-
-class FakeCheckout(object):
-  def __init__(self):
-    self.project_path = os.getcwd()
-    self.project_name = os.path.basename(self.project_path)
-
-  @staticmethod
-  def prepare(_revision):
-    logging.info('FakeCheckout is syncing')
-    return unicode('FAKE')
-
-  @staticmethod
-  def apply_patch(*_args):
-    logging.info('FakeCheckout is applying a patch')
-
-  @staticmethod
-  def commit(*_args):
-    logging.info('FakeCheckout is committing patch')
-    return 'FAKED'
-
-  @staticmethod
-  def get_settings(_key):
-    return None
-
-  @staticmethod
-  def revisions(*_args):
-    return None
-
-
-def AlertOnUncleanCheckout():
-  """Sends an alert if the cq is running live with local edits."""
-  diff = subprocess2.capture(['gclient', 'diff'], cwd=ROOT_DIR).strip()
-  if diff:
-    cq_alerts.SendAlert(
-        'CQ running with local diff.',
-        ('Ruh-roh! Commit queue was started with an unclean checkout.\n\n'
-         '$ gclient diff\n%s' % diff))
-
-
-def SetupLogging(options):
-  """Configures the logging module."""
-  logging.getLogger().setLevel(logging.DEBUG)
-  if options.verbose:
-    level = logging.DEBUG
-  else:
-    level = logging.INFO
-  console_logging = logging.StreamHandler()
-  console_logging.setFormatter(logging.Formatter(
-      '%(asctime)s %(levelname)7s %(message)s'))
-  console_logging.setLevel(level)
-  logging.getLogger().addHandler(console_logging)
-
-  log_directory = 'logs-' + options.project
-  if not os.path.exists(log_directory):
-    os.mkdir(log_directory)
-
-  logging_rotating_file = logging.handlers.RotatingFileHandler(
-      filename=os.path.join(log_directory, 'commit_queue.log'),
-      maxBytes= 10*1024*1024,
-      backupCount=50)
-  logging_rotating_file.setLevel(logging.DEBUG)
-  logging_rotating_file.setFormatter(logging.Formatter(
-      '%(asctime)s %(levelname)-8s %(module)15s(%(lineno)4d): %(message)s'))
-  logging.getLogger().addHandler(logging_rotating_file)
-
-
-class SignalInterrupt(Exception):
-  """Exception that indicates being interrupted by a caught signal."""
-  
-  def __init__(self, signal_set=None, *args, **kwargs):
-    super(SignalInterrupt, self).__init__(*args, **kwargs)
-    self.signal_set = signal_set
-
-
-def SaveDatabaseCopyForDebugging(db_path):
-  """Saves database file for debugging. Returns name of the saved file."""
-  with tempfile.NamedTemporaryFile(
-      dir=os.path.dirname(db_path),
-      prefix='db.debug.',
-      suffix='.json',
-      delete=False) as tmp_file:
-    with open(db_path) as db_file:
-      shutil.copyfileobj(db_file, tmp_file)
-    return tmp_file.name
-
-
-def main():
-  # Set a default timeout for sockets. This is critical when talking to remote
-  # services like AppEngine and buildbot.
-  # TODO(phajdan.jr): This used to be 70s. Investigate lowering it again.
-  socket.setdefaulttimeout(60.0 * 15)
-
-  parser = optparse.OptionParser(
-      description=sys.modules['__main__'].__doc__)
-  project_choices = projects.supported_projects()
-  parser.add_option('-v', '--verbose', action='store_true')
-  parser.add_option(
-      '--no-dry-run',
-      action='store_false',
-      dest='dry_run',
-      default=True,
-      help='Run for real instead of dry-run mode which is the default. '
-      'WARNING: while the CQ won\'t touch rietveld in dry-run mode, the '
-      'Try Server will. So it is recommended to use --only-issue')
-  parser.add_option(
-      '--only-issue',
-      type='int',
-      help='Limits to a single issue. Useful for live testing; WARNING: it '
-      'will fake that the issue has the CQ bit set, so only try with an '
-      'issue you don\'t mind about.')
-  parser.add_option(
-      '--fake',
-      action='store_true',
-      help='Run with a fake checkout to speed up testing')
-  parser.add_option(
-      '--no-try',
-      action='store_true',
-      help='Don\'t send try jobs.')
-  parser.add_option(
-      '-p',
-      '--poll-interval',
-      type='int',
-      default=10,
-      help='Minimum delay between each polling loop, default: %default')
-  parser.add_option(
-      '--query-only',
-      action='store_true',
-      help='Return internal state')
-  parser.add_option(
-      '--project',
-      choices=project_choices,
-      help='Project to run the commit queue against: %s' %
-           ', '.join(project_choices))
-  parser.add_option(
-      '-u',
-      '--user',
-      default='commit-bot@chromium.org',
-      help='User to use instead of %default')
-  parser.add_option(
-      '--rietveld',
-      default='https://codereview.chromium.org',
-      help='Rietveld server to use instead of %default')
-  options, args = parser.parse_args()
-  if args:
-    parser.error('Unsupported args: %s' % args)
-  if not options.project:
-    parser.error('Need to pass a valid project to --project.\nOptions are: %s' %
-        ', '.join(project_choices))
-
-  SetupLogging(options)
-  try:
-    work_dir = os.path.join(ROOT_DIR, 'workdir')
-    # Use our specific subversion config.
-    checkout.SvnMixIn.svn_config = checkout.SvnConfig(
-        os.path.join(ROOT_DIR, 'subversion_config'))
-
-    url = options.rietveld
-    gaia_creds = creds.Credentials(os.path.join(work_dir, '.gaia_pwd'))
-    if options.dry_run:
-      logging.debug('Dry run - skipping SCM check.')
-      if options.only_issue:
-        parser.error('--only-issue is not supported with dry run')
-      else:
-        print('Using read-only Rietveld')
-      # Make sure rietveld is not modified. Pass empty email and
-      # password to bypass authentication; this additionally
-      # guarantees rietveld will not allow any changes.
-      rietveld_obj = rietveld.ReadOnlyRietveld(url, email='', password='')
-    else:
-      AlertOnUncleanCheckout()
-      print('WARNING: The Commit Queue is going to commit stuff')
-      if options.only_issue:
-        print('Using only issue %d' % options.only_issue)
-        rietveld_obj = OnlyIssueRietveld(
-            url,
-            options.user,
-            gaia_creds.get(options.user),
-            None,
-            options.only_issue)
-      else:
-        rietveld_obj = rietveld.Rietveld(
-            url,
-            options.user,
-            gaia_creds.get(options.user),
-            None)
-
-    pc = projects.load_project(
-        options.project,
-        options.user,
-        work_dir,
-        rietveld_obj,
-        options.no_try)
-
-    if options.dry_run:
-      if options.fake:
-        # Disable the checkout.
-        print 'Using no checkout'
-        pc.context.checkout = FakeCheckout()
-      else:
-        print 'Using read-only checkout'
-        pc.context.checkout = checkout.ReadOnlyCheckout(pc.context.checkout)
-      # Save pushed events on disk.
-      print 'Using read-only chromium-status interface'
-      pc.context.status = async_push.AsyncPushStore()
-
-    landmine_path = os.path.join(work_dir,
-                                 pc.context.checkout.project_name + '.landmine')
-    db_path = os.path.join(work_dir, pc.context.checkout.project_name + '.json')
-    if os.path.isfile(db_path):
-      if os.path.isfile(landmine_path):
-        debugging_path = SaveDatabaseCopyForDebugging(db_path)
-        os.remove(db_path)
-        logging.warning(('Deleting database because previous shutdown '
-                        'was unclean. The copy of the database is saved '
-                        'as %s.') % debugging_path)
-      else:
-        try:
-          pc.load(db_path)
-        except ValueError as e:
-          debugging_path = SaveDatabaseCopyForDebugging(db_path)
-          os.remove(db_path)
-          logging.warning(('Failed to parse database (%r), deleting it. '
-                          'The copy of the database is saved as %s.') %
-                          (e, debugging_path))
-          raise e
-
-    # Create a file to indicate unclean shutdown.
-    with open(landmine_path, 'w'):
-      pass
-
-    sig_handler.installHandlers(
-        signal.SIGINT,
-        signal.SIGHUP
-    )
-
-    # Sync every 5 minutes.
-    SYNC_DELAY = 5*60
-    try:
-      if options.query_only:
-        pc.look_for_new_pending_commit()
-        pc.update_status()
-        print(str(pc.queue))
-        os.remove(landmine_path)
-        return 0
-
-      now = time.time()
-      next_loop = now + options.poll_interval
-      # First sync is on second loop.
-      next_sync = now + options.poll_interval * 2
-      while True:
-        # In theory, we would gain in performance to parallelize these tasks. In
-        # practice I'm not sure it matters.
-        pc.look_for_new_pending_commit()
-        pc.process_new_pending_commit()
-        pc.update_status()
-        pc.scan_results()
-        if sig_handler.getTriggeredSignals():
-          raise SignalInterrupt(signal_set=sig_handler.getTriggeredSignals())
-        # Save the db at each loop. The db can easily be in the 1mb range so
-        # it's slowing down the CQ a tad but it in the 100ms range even for that
-        # size.
-        pc.save(db_path)
-
-        # More than a second to wait and due to sync.
-        now = time.time()
-        if (next_loop - now) >= 1 and (next_sync - now) <= 0:
-          if sys.stdout.isatty():
-            sys.stdout.write('Syncing while waiting                \r')
-            sys.stdout.flush()
-          try:
-            pc.context.checkout.prepare(None)
-          except subprocess2.CalledProcessError as e:
-            # Don't crash, most of the time it's the svn server that is dead.
-            # How fun. Send a stack trace to annoy the maintainer.
-            errors.send_stack(e)
-          next_sync = time.time() + SYNC_DELAY
-
-        now = time.time()
-        next_loop = max(now, next_loop)
-        while True:
-          # Abort if any signals are set
-          if sig_handler.getTriggeredSignals():
-            raise SignalInterrupt(signal_set=sig_handler.getTriggeredSignals())
-          delay = next_loop - now
-          if delay <= 0:
-            break
-          if sys.stdout.isatty():
-            sys.stdout.write('Sleeping for %1.1f seconds          \r' % delay)
-            sys.stdout.flush()
-          time.sleep(min(delay, 0.1))
-          now = time.time()
-        if sys.stdout.isatty():
-          sys.stdout.write('Running (please do not interrupt)   \r')
-          sys.stdout.flush()
-        next_loop = time.time() + options.poll_interval
-    except:  # Catch all fatal exit conditions.
-      logging.exception('CQ loop terminating')
-      raise
-    finally:
-      logging.warning('Saving db...')
-      pc.save(db_path)
-      pc.close()
-      logging.warning('db save successful.')
-  except SignalInterrupt:
-    # This is considered a clean shutdown: we only throw this exception
-    # from selected places in the code where the database should be
-    # in a known and consistent state.
-    os.remove(landmine_path)
-
-    print 'Bye bye (SignalInterrupt)'
-    # 23 is an arbitrary value to signal loop.sh that it must stop looping.
-    return 23
-  except KeyboardInterrupt:
-    # This is actually an unclean shutdown. Do not remove the landmine file.
-    # One example of this is user hitting ctrl-c twice at an arbitrary point
-    # inside the CQ loop. There are no guarantees about consistent state
-    # of the database then.
-
-    print 'Bye bye (KeyboardInterrupt - this is considered unclean shutdown)'
-    # 23 is an arbitrary value to signal loop.sh that it must stop looping.
-    return 23
-  except errors.ConfigurationError as e:
-    parser.error(str(e))
-    return 1
-
-  # CQ generally doesn't exit by itself, but if we ever get here, it looks
-  # like a clean shutdown so remove the landmine file.
-  # TODO(phajdan.jr): Do we ever get here?
-  os.remove(landmine_path)
-  return 0
-
-
-if __name__ == '__main__':
-  fix_encoding.fix_encoding()
-  sys.exit(main())
diff --git a/context.py b/context.py
deleted file mode 100644
index 60ae828..0000000
--- a/context.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-
-class Context(object):
-  """Class to hold context about a the current code review and checkout."""
-  def __init__(self, rietveld, checkout, status, server_hooks_missing=False):
-    """
-    Args:
-      rietveld: Instance of rietveld.Rietveld.
-      checkout: Instance of checkout.SvnCheckout
-      status: Instance of async_push.AsyncPush.
-      server_hooks_missing: True if the project's SVN repository does not have
-                            server-side hooks configured.
-    """
-    self.rietveld = rietveld
-    self.checkout = checkout
-    self.status = status
-    self.server_hooks_missing = server_hooks_missing
diff --git a/cq_alerts.py b/cq_alerts.py
deleted file mode 100644
index bfaf647..0000000
--- a/cq_alerts.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Send automated email alerts."""
-
-import logging
-import os
-import re
-import smtplib
-import socket
-import sys
-
-ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
-sys.path.insert(0, os.path.join(ROOT_DIR, '..', 'commit-queue-internal'))
-
-# These come from commit-queue-internal.
-try:
-  import alert_settings  # pylint: disable=F0401
-except ImportError:
-  alert_settings = None
-
-
-SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
-
-
-def SendAlert(subject, message):
-  """Send an alert to troopers.
-
-  Use the golo smtp relay to prevent accidental leaks from local checkouts.
-  """
-  hostname = socket.getfqdn()
-  if (alert_settings and
-      re.match(r'cq\d?\.golo\.chromium\.org$', hostname)):
-    logging.warning('Sending alert, subject %s', subject)
-    body = """\
-From: %s
-To: %s
-Subject: [cq alert] %s
-
-host: %s
-script dir: %s
-cwd: %s
-argv: %s
-
-
-%s""" % (alert_settings.FROM_ADDRESS, ', '.join(alert_settings.TO_ADDRESSES),
-         subject, hostname, SCRIPT_DIR, os.getcwd(), sys.argv, message)
-
-    server = smtplib.SMTP(alert_settings.SMTP_RELAY)
-    server.sendmail(
-        alert_settings.FROM_ADDRESS, alert_settings.TO_ADDRESSES, body)
-    server.quit()
-  else:
-    logging.warning('\n  '.join([
-        'Would send alert if running in production.',
-        'Subject: %s' % subject, ''] + message.splitlines()[:20]))
diff --git a/creds.py b/creds.py
deleted file mode 100644
index a26ffa8..0000000
--- a/creds.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Loads credentials."""
-
-import os
-
-import errors
-
-
-class Credentials(object):
-  """Keeps a dictionary of accounts."""
-
-  def __init__(self, pwd_path):
-    try:
-      content = open(pwd_path, 'r').read()
-    except IOError:
-      raise errors.ConfigurationError(
-          '%s is missing. Please read workdir/README.' %
-              os.path.basename(pwd_path))
-    lines = [l.strip() for l in content.splitlines()]
-    lines = [l for l in lines if l and not l.startswith('#')]
-    self.creds = {}
-    for l in lines:
-      items = l.split(':', 1)
-      self.creds[items[0].strip()] = items[1].strip()
-
-  def get(self, user):
-    return self.creds.get(user, None)
diff --git a/errors.py b/errors.py
deleted file mode 100644
index ffe43d3..0000000
--- a/errors.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Defines errors and stack trace utility funciton."""
-
-import breakpad
-import sys
-import traceback
-
-
-class ConfigurationError(Exception):
-  """Configuration issues that prevents startup."""
-
-
-def send_stack(e):
-  breakpad.SendStack(e,
-      ''.join(traceback.format_tb(sys.exc_info()[2])),
-      maxlen=2000)
diff --git a/find_depot_tools.py b/find_depot_tools.py
deleted file mode 100644
index 64cb3f4..0000000
--- a/find_depot_tools.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2010 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Small utility function to find depot_tools and add it to the python path.
-
-Will throw an ImportError exception if depot_tools can't be found since it
-imports breakpad.
-"""
-
-import os
-import sys
-
-def add_depot_tools_to_path():
-  """Search for depot_tools and add it to sys.path."""
-  # First look if depot_tools is already in PYTHONPATH.
-  for i in sys.path:
-    if i.rstrip(os.sep).endswith('depot_tools'):
-      return i
-  # Then look if depot_tools is in PATH, common case.
-  for i in os.environ['PATH'].split(os.pathsep):
-    if i.rstrip(os.sep).endswith('depot_tools'):
-      sys.path.insert(0, i.rstrip(os.sep))
-      return i
-  # Rare case, it's not even in PATH, look upward up to root.
-  root_dir = os.path.dirname(os.path.abspath(__file__))
-  while root_dir:
-    if os.path.isfile(os.path.join(root_dir, 'depot_tools', 'breakpad.py')):
-      i = os.path.join(root_dir, 'depot_tools')
-      sys.path.insert(0, i)
-      return i
-    root_dir = os.path.dirname(root_dir)
-  print >> sys.stderr, 'Failed to find depot_tools'
-  return None
-
-add_depot_tools_to_path()
-
-# pylint: disable=W0611
-import breakpad
diff --git a/get_appengine.py b/get_appengine.py
deleted file mode 100755
index 339923e..0000000
--- a/get_appengine.py
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import logging
-import optparse
-import os
-import re
-import shutil
-import sys
-import tempfile
-import urllib
-import zipfile
-
-BASE_DIR = os.path.dirname(os.path.abspath(__file__))
-
-
-def get_gae_sdk_version(gae_path):
-  """Returns the installed GAE SDK version or None."""
-  version_path = os.path.join(gae_path, 'VERSION')
-  if os.path.isfile(version_path):
-    values = dict(
-        map(lambda x: x.strip(), l.split(':'))
-        for l in open(version_path) if ':' in l)
-    if 'release' in values:
-      return values['release'].strip('"')
-
-
-def get_latest_gae_sdk_url(name):
-  """Returns the url to get the latest GAE SDK and its version."""
-  url = 'https://code.google.com/appengine/downloads.html'
-  logging.debug('%s', url)
-  content = urllib.urlopen(url).read()
-  regexp = (
-      r'(http\:\/\/googleappengine\.googlecode.com\/files\/'
-      + re.escape(name) + r'[0-9\.]+?\.zip)')
-  m = re.search(regexp, content)
-  url = m.group(1)
-  # Calculate the version from the url.
-  new_version = re.search(re.escape(name) + r'(.+?).zip', url).group(1)
-  # Upgrade to https
-  return url.replace('http://', 'https://'), new_version
-
-
-def extract_zip(z, root_path):
-  """Extracts files in a zipfile but keep the executable bits."""
-  count = 0
-  for f in z.infolist():
-    perm = (f.external_attr >> 16L) & 0777
-    filepath = os.path.join(root_path, f.filename)
-    logging.debug('Extracting %s' % f.filename)
-    if f.filename.endswith('/'):
-      os.mkdir(filepath, perm)
-    else:
-      z.extract(f, root_path)
-      os.chmod(filepath, perm)
-      count += 1
-  print('Extracted %d files' % count)
-
-
-def install_latest_gae_sdk(root_path, fetch_go, dry_run):
-  if fetch_go:
-    if sys.platform == 'darwin':
-      name = 'go_appengine_sdk_darwin_amd64-'
-    else:
-      # Add other platforms as needed.
-      name = 'go_appengine_sdk_linux_amd64-'
-  else:
-    name = 'google_appengine_'
-
-  # The zip file already contains 'google_appengine' in its path so it's a bit
-  # awkward to unzip otherwise. Hard code the path in for now.
-  gae_path = os.path.join(root_path, 'google_appengine')
-  print('Looking up path %s' % gae_path)
-  version = get_gae_sdk_version(gae_path)
-  if version:
-    print('Found installed version %s' % version)
-  else:
-    print('Didn\'t find an SDK')
-
-  url, new_version = get_latest_gae_sdk_url(name)
-  print('New version is %s' % new_version)
-  if version == new_version:
-    return 0
-
-  if os.path.isdir(gae_path):
-    print('Removing previous version')
-    if not dry_run:
-      shutil.rmtree(gae_path)
-
-  print('Fetching %s' % url)
-  if not dry_run:
-    with tempfile.NamedTemporaryFile() as f:
-      urllib.urlretrieve(url, f.name)
-      # Assuming we're extracting there. In fact, we have no idea.
-      print('Extracting into %s' % gae_path)
-      z = zipfile.ZipFile(f.name, 'r')
-      try:
-        extract_zip(z, root_path)
-      finally:
-        z.close()
-  return 0
-
-
-def main():
-  parser = optparse.OptionParser()
-  parser.add_option('-v', '--verbose', action='store_true')
-  parser.add_option(
-      '-g', '--go', action='store_true', help='Defaults to python SDK')
-  parser.add_option(
-      '-d', '--dest', default=os.path.dirname(BASE_DIR), help='Output')
-  parser.add_option('--dry-run', action='store_true', help='Do not download')
-  options, args = parser.parse_args()
-  if args:
-    parser.error('Unsupported args: %s' % ' '.join(args))
-  logging.basicConfig(level=logging.DEBUG if options.verbose else logging.ERROR)
-  return install_latest_gae_sdk(
-      os.path.abspath(options.dest), options.go, options.dry_run)
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/heartbeats/cq-heartbeat.py b/heartbeats/cq-heartbeat.py
deleted file mode 100755
index bb855a7..0000000
--- a/heartbeats/cq-heartbeat.py
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env python
-# Display health information on commit queue.
-
-import Queue
-import multiprocessing
-import os
-import re
-import subprocess
-import threading
-import time
-
-CQ_LOGS = ['/b/commit-queue/logs-chromium/commit_queue.log',
-           '/b/commit-queue/logs-chromium_deps/commit_queue.log',
-           '/b/commit-queue/logs-nacl/commit_queue.log',
-           '/b/commit-queue/logs-skia/commit_queue.log',
-           '/b/commit-queue/logs-tools/commit_queue.log',]
-
-
-def call(args, timeout=None, shell=False):
-  """Returns (code, stdout, stderr)"""
-  def _run_proc(args, output):
-    proc = subprocess.Popen(
-        args, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
-        stderr=subprocess.PIPE, shell=shell)
-    output.put(proc)
-    output.put((proc.wait(),) + proc.communicate())
-
-  def _timer(output, timeout):
-    time.sleep(timeout)
-    output.put([618, '', 'Process timed out.'])
-
-  output = Queue.Queue()
-  thr = threading.Thread(target=_run_proc, args=[args, output])
-  thr.daemon = True
-  thr.start()
-  # First item passed through output is always the Popen object.
-  proc = output.get()
-
-  # Wait for process to finish, or timeout.
-  if timeout:
-    timer_thread = threading.Thread(target=_timer, args=[output, timeout])
-    timer_thread.daemon = True
-    timer_thread.start()
-
-  # Get the first output that comes out, which is either an error from _timer()
-  # or the desired output from the process.
-  code, out, err = output.get()
-  if code == 618:
-    # Kill the child process if it timed out.
-    try:
-      proc.terminate()
-      time.sleep(0.5)
-      if proc.poll() is None:
-        proc.kill()
-    except OSError:
-      pass
-
-  return code, out, err
-
-def test_num_proc_factory(proc_name):
-  def test_num_proc():
-    cmd = 'pgrep %s' % proc_name
-    _, out, _ = call(cmd, 15, True)
-    numproc = len(out.splitlines())
-    if numproc < 300:
-      return (0, 'OK - %d'  % numproc)
-    else:
-      return (1, 'FAIL - %d.  This CQ is probably overloaded.' % numproc)
-  return test_num_proc
-
-def test_load():
-  code , out, _ = call('uptime', 15, True)
-  if code == 618:
-    return (1, 'FAIL - Process timed out.')
-
-  cpuload_m = re.search(r'(\d+\.\d+)\s*$', out)
-  if cpuload_m:
-    cpuload = float(cpuload_m.group(1))
-    if cpuload < multiprocessing.cpu_count():
-      return (0, 'OK - %2f' % cpuload)
-    else:
-      return (1, 'FAIL - %2f.  This CQ is probably overloaded.' % cpuload)
-  else:
-    return (1, 'FAIL - Can\'t find cpu load: %s' % out)
-
-def test_log_mod_time_factory(name):
-  def test_log_mod_time():
-    if not os.path.exists(name):
-      return (1, 'FAIL - %s does not exist' % name)
-    time_since_modified = time.time() - os.path.getmtime(name)
-    if time_since_modified > 120.0:
-      return (1, 'FAIL - %d seconds ago.' % time_since_modified)
-    return (0, 'OK - %d seconds ago.' % time_since_modified)
-  return test_log_mod_time
-
-tests = [
-    ('number of python_runtime procs',
-     test_num_proc_factory('_python_runtime')),
-    ('cpu load', test_load)]
-for log_name in CQ_LOGS:
-  tests.append(('%s last modified' % log_name,
-                test_log_mod_time_factory(log_name)))
-
-def main():
-  return_code = 0
-  for test_name, test in tests:
-    code, msg = test()
-    return_code += code
-    print '%s: %s' % (test_name, msg)
-  print 'status: %d' % return_code
-
-if __name__ == '__main__':
-  main()
diff --git a/loop.sh b/loop.sh
deleted file mode 100755
index 868054d..0000000
--- a/loop.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# Runs a command in a loop. This is to have the commit queue automatically
-# restart. 23 is an arbitrary value to signal that the loop must stop.
-
-while true; do
-  "$@"
-  if [ $? -eq 23 ]; then
-    break
-  fi
-done
diff --git a/model.py b/model.py
deleted file mode 100644
index 6892381..0000000
--- a/model.py
+++ /dev/null
@@ -1,406 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Defines the PersistentMixIn utility class to easily convert classes to and
-from dict for serialization.
-
-This class is aimed at json-compatible serialization, so it supports the limited
-set of structures supported by json; strings, numbers as int or float, list and
-dictionaries.
-
-PersistentMixIn._persistent_members() returns a dict of each member with the
-tuple of expected types. Each member can be decoded in multiple types, for
-example, a subversion revision number could have (None, int, str), meaning that
-the revision could be None, when not known, an int or the int as a string
-representation. The tuple is listed in the prefered order of conversions.
-
-Composites types that cannot be represented exactly in json like tuple, set and
-frozenset are converted from and back to list automatically. Any class instance
-that has been serialized can be unserialized in the same class instance or into
-a bare dict.
-
-See tests/model_tests.py for examples.
-"""
-
-import json
-import logging
-import os
-
-# Set in the output dict to be able to know which class was serialized to help
-# deserialization.
-TYPE_FLAG = '__persistent_type__'
-
-# Marker to tell the deserializer that we don't know the expected type, used in
-# composite types.
-_UNKNOWN = object()
-
-
-def as_dict(value):
-  """Recursively converts an object into a dictionary.
-
-  Converts tuple,set,frozenset into list and recursively process each items.
-  """
-  if hasattr(value, 'as_dict') and callable(value.as_dict):
-    return value.as_dict()
-  elif isinstance(value, (list, tuple, set, frozenset)):
-    return [as_dict(v) for v in value]
-  elif isinstance(value, dict):
-    return dict((as_dict(k), as_dict(v))
-                for k, v in value.iteritems())
-  elif isinstance(value, (bool, float, int, basestring)) or value is None:
-    return value
-  else:
-    raise AttributeError('Can\'t type %s into a dictionary' % type(value))
-
-
-def _inner_from_dict(name, value, member_types):
-  """Recursively regenerates an object.
-
-  For each of the allowable types, try to convert it. If None is an allowable
-  type, any data that can't be parsed will be parsed as None and will be
-  silently discarded. Otherwise, an exception will be raise.
-  """
-  logging.debug('_inner_from_dict(%s, %r, %s)', name, value, member_types)
-  result = None
-  if member_types is _UNKNOWN:
-    # Use guesswork a bit more and accept anything.
-    if isinstance(value, dict):
-      if TYPE_FLAG in value:
-        result = PersistentMixIn.from_dict(value, _UNKNOWN)
-      else:
-        # Unserialize it as a raw dict.
-        result =  dict(
-            (_inner_from_dict(None, k, _UNKNOWN),
-              _inner_from_dict(None, v, _UNKNOWN))
-            for k, v in value.iteritems())
-    elif isinstance(value, list):
-      # All of these are serialized to list.
-      result = [_inner_from_dict(None, v, _UNKNOWN) for v in value]
-    elif isinstance(value, (bool, float, int, unicode)):
-      result = value
-    else:
-      raise TypeError('No idea how to convert %r' % value)
-  else:
-    for member_type in member_types:
-      # Explicitly leave None out of this loop.
-      if issubclass(member_type, PersistentMixIn):
-        if isinstance(value, dict) and TYPE_FLAG in value:
-          result = PersistentMixIn.from_dict(value, member_type)
-          break
-      elif member_type is dict:
-        if isinstance(value, dict):
-          result =  dict(
-              (_inner_from_dict(None, k, _UNKNOWN),
-                _inner_from_dict(None, v, _UNKNOWN))
-              for k, v in value.iteritems())
-          break
-      elif member_type in (list, tuple, set, frozenset):
-        # All of these are serialized to list.
-        if isinstance(value, list):
-          result = member_type(
-              _inner_from_dict(None, v, _UNKNOWN) for v in value)
-          break
-      elif member_type in (bool, float, int, str, unicode):
-        if isinstance(value, member_type):
-          result = member_type(value)
-          break
-      elif member_type is None.__class__ and value is None:
-        result = None
-        break
-    else:
-      logging.info(
-          'Ignored %s: didn\'t fit types %s; %s',
-          name,
-          ', '.join(i.__name__ for i in member_types),
-          repr(value)[:200])
-    _check_type_value(name, result, member_types)
-  return result
-
-
-def to_yaml(obj):
-  """Converts a PersistentMixIn into a yaml-inspired format.
-
-  Warning: Not unit tested, use at your own risk!
-  """
-  def align(x):
-    y = x.splitlines(True)
-    if len(y) > 1:
-      return ''.join(y[0:1] + ['  ' + z for z in y[1:]])
-    return x
-  def align_value(x):
-    if '\n' in x:
-      return '\n  ' + align(x)
-    return x
-
-  if hasattr(obj, 'as_dict') and callable(obj.as_dict):
-    out = (to_yaml(obj.as_dict()),)
-  elif isinstance(obj, (bool, float, int, unicode)) or obj is None:
-    out = (align(str(obj)),)
-  elif isinstance(obj, dict):
-    if TYPE_FLAG in obj:
-      out = ['%s:' % obj[TYPE_FLAG]]
-    else:
-      out = []
-    for k, v in obj.iteritems():
-      # Skips many members resolving to bool() == False
-      if k.startswith('__') or v in (None, '', False, 0):
-        continue
-      r = align_value(to_yaml(v))
-      if not r:
-        continue
-      out.append('- %s: %s' % (k, r))
-  elif hasattr(obj, '__iter__') and callable(obj.__iter__):
-    out = ['- %s' % align(to_yaml(x)) for x in obj]
-  else:
-    out = ('%s' % obj.__class__.__name__,)
-  return '\n'.join(out)
-
-
-def _default_value(member_types):
-  """Returns an instance of the first allowed type. Special case None."""
-  if member_types[0] is None.__class__:
-    return None
-  else:
-    return member_types[0]()
-
-
-def _check_type_value(name, value, member_types):
-  """Raises a TypeError exception if value is not one of the allowed types in
-  member_types.
-  """
-  if not isinstance(value, member_types):
-    prefix = '%s e' % name if name else 'E'
-    raise TypeError(
-        '%sxpected type(s) %s; got %r' %
-        (prefix, ', '.join(i.__name__ for i in member_types), value))
-
-
-
-class PersistentMixIn(object):
-  """Class to be used as a base class to persistent data in a simplistic way.
-
-  Persistent class member needs to be set to a tuple containing the instance
-  member variable that needs to be saved or loaded. The first item will be
-  default value, e.g.:
-    foo = (None, str, dict)
-  Will default initialize self.foo to None.
-  """
-  # Cache of all the subclasses of PersistentMixIn.
-  __persistent_classes_cache = None
-
-  _read_only = False
-
-  def __init__(self, **kwargs):
-    """Initializes with the default members."""
-    super(PersistentMixIn, self).__init__()
-    persistent_members = self._persistent_members()
-    for member, member_types in persistent_members.iteritems():
-      if member in kwargs:
-        value = kwargs.pop(member)
-        if isinstance(value, str):
-          # Assume UTF-8 all the time. Note: This is explicitly when the object
-          # is constructed in the code. This code path is never used when
-          # deserializing the object.
-          value = value.decode('utf-8')
-      else:
-        value = _default_value(member_types)
-      _check_type_value(member, value, member_types)
-      setattr(self, member, value)
-    if kwargs:
-      raise AttributeError('Received unexpected initializers: %s' % kwargs)
-
-  def __setattr__(self, name, value):
-    """Enforces immutability if cls._read_only is True."""
-    if self._read_only:
-      raise TypeError()
-    return super(PersistentMixIn, self).__setattr__(name, value)
-
-  @classmethod
-  def _persistent_members(cls):
-    """Returns the persistent items as a dict.
-
-    Each entry value can be a tuple when the member can be assigned different
-    types.
-    """
-    # Note that here, cls is the subclass, not PersistentMixIn.
-    # TODO(maruel): Cache the results. It's tricky because setting
-    # cls.__persistent_members_cache on a class will implicitly set it on its
-    # subclass. So in a class hierarchy with A -> B -> PersistentMixIn, calling
-    # B()._persistent_members() will incorrectly set the cache for A.
-    persistent_members_cache = {}
-    # Enumerate on the subclass, not on an instance.
-    for item in dir(cls):
-      if item.startswith('_'):
-        continue
-      item_value = getattr(cls, item)
-      if isinstance(item_value, type):
-        item_value = (item_value,)
-      if not isinstance(item_value, tuple):
-        continue
-      if not all(i is None or i.__class__ == type for i in item_value):
-        continue
-      if any(i is str for i in item_value):
-        raise TypeError(
-            '%s is type \'str\' which is currently not supported' % item)
-      item_value = tuple(
-          f if f is not None else None.__class__ for f in item_value)
-      persistent_members_cache[item] = item_value
-    return persistent_members_cache
-
-  @staticmethod
-  def _get_subclass(typename):
-    """Returns the PersistentMixIn subclass with the name |typename|."""
-    subclass = None
-    if PersistentMixIn.__persistent_classes_cache is not None:
-      subclass = PersistentMixIn.__persistent_classes_cache.get(typename)
-    if not subclass:
-      # Get the subclasses recursively.
-      PersistentMixIn.__persistent_classes_cache = {}
-      def recurse(c):
-        for s in c.__subclasses__():
-          assert s.__name__ not in PersistentMixIn.__persistent_classes_cache
-          PersistentMixIn.__persistent_classes_cache[s.__name__] = s
-          recurse(s)
-      recurse(PersistentMixIn)
-
-      subclass = PersistentMixIn.__persistent_classes_cache.get(typename)
-      if not subclass:
-        raise KeyError('Couldn\'t find type %s' % typename)
-    return subclass
-
-  def as_dict(self):
-    """Create a dictionary out of this object, i.e. Serialize the object."""
-    out = {}
-    for member, member_types in self._persistent_members().iteritems():
-      value = getattr(self, member)
-      _check_type_value(member, value, member_types)
-      out[member] = as_dict(value)
-    out[TYPE_FLAG] = self.__class__.__name__
-    return out
-
-  @staticmethod
-  def from_dict(data, subclass=_UNKNOWN):
-    """Returns an instance of a class inheriting from PersistentMixIn,
-    initialized with 'data' dict, i.e. Deserialize the object.
-    """
-    logging.debug('from_dict(%r, %s)', data, subclass)
-    if subclass is _UNKNOWN:
-      subclass = PersistentMixIn._get_subclass(data[TYPE_FLAG])
-    # This initializes the instance with the default values.
-
-    # pylint: disable=W0212
-    kwargs = {}
-    for member, member_types in subclass._persistent_members().iteritems():
-      if member in data:
-        try:
-          value = _inner_from_dict(member, data[member], member_types)
-        except TypeError:
-          # pylint: disable=E1103
-          logging.error(
-              'Failed to instantiate %s because of member %s',
-              subclass.__name__, member)
-          raise
-      else:
-        value = _default_value(member_types)
-      _check_type_value(member, value, member_types)
-      kwargs[member] = value
-    try:
-      obj = subclass(**kwargs)
-    except TypeError:
-      # pylint: disable=E1103
-      logging.error('Failed to instantiate %s: %r', subclass.__name__, kwargs)
-      raise
-    assert isinstance(obj, PersistentMixIn) and obj.__class__ != PersistentMixIn
-    return obj
-
-  def __str__(self):
-    return to_yaml(self)
-
-  def __eq__(self, _):
-    raise TypeError()
-
-  # pylint: disable=R0201
-  def __ne__(self, _):
-    raise TypeError()
-
-
-def is_equivalent(lhs, rhs):
-  """Implements the equivalent of __eq__.
-
-  The reason for not implementing __eq__ is to not encourage bad behavior by
-  implicitly and recursively using __eq__() in a list().remove() call.
-  """
-  # pylint: disable=W0212
-  if lhs._persistent_members() != rhs._persistent_members():
-    return False
-  for i in lhs._persistent_members():
-    if getattr(lhs, i) != getattr(rhs, i):
-      return False
-  return True
-
-
-def immutable(func):
-  """Member function decorators that convert 'self' to an immutable object.
-
-  Member functions of the object can't be called unless they are immutable too.
-  Properties can be looked up, this function assumes properties do not mutate
-  the object.
-
-  Note: a user can still call classmethod and do mutation on the class, or they
-  can lookup a member object and mutate this one. Don't be silly.
-  """
-  class Immutable(object):
-    def __init__(self, obj):
-      object.__setattr__(self, '__ref', obj)
-
-    def __getattribute__(self, name):
-      ref = object.__getattribute__(self, '__ref')
-      value = getattr(ref, name)
-      if not callable(value):
-        return value
-      if getattr(value, 'is_immutable', None):
-        # It is immutable too.
-        return value
-      if getattr(value, 'im_self', None) == None:
-        # It is static.
-        return value
-      raise TypeError(
-          'Can\'t call mutable member function \'%s\' on an immutable '
-          'instance of %s' % (name, ref.__class__.__name__))
-
-    def __setattr__(self, name, _value):
-      ref = object.__getattribute__(self, '__ref')
-      raise TypeError(
-          'Can\'t change attribute \'%s\' on an immutable instance of \'%s\'' %
-          (name, ref.__class__.__name__))
-
-    def __delattr__(self, name):
-      ref = object.__getattribute__(self, '__ref')
-      raise TypeError(
-          'Can\'t delete attribute \'%s\' on an immutable instance of \'%s\'' %
-          (name, ref.__class__.__name__))
-
-  def hook(self, *args, **kwargs):
-    return func(Immutable(self), *args, **kwargs)
-
-  hook.is_immutable = True
-  return hook
-
-
-def load_from_json_file(filename):
-  """Loads one object from a JSON file."""
-  with open(filename, 'r') as f:
-    return PersistentMixIn.from_dict(json.load(f))
-
-
-def save_to_json_file(filename, obj):
-  """Save one object in a JSON file."""
-  try:
-    old = filename + '.old'
-    if os.path.exists(filename):
-      os.rename(filename, old)
-  finally:
-    with open(filename, 'wb') as f:
-      json.dump(obj.as_dict(), f, sort_keys=True, indent=2)
-      f.write('\n')
diff --git a/natsort.py b/natsort.py
deleted file mode 100755
index 701a27b..0000000
--- a/natsort.py
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Intelligent natural sort implementation."""
-
-import re
-
-
-def natcmp(a, b):
-  """Natural string comparison, case sensitive."""
-  try_int = lambda s: int(s) if s.isdigit() else s
-  def natsort_key(s):
-    if not isinstance(s, basestring):
-      # Since re.findall() generates a list out of a string, returns a list here
-      # to balance the comparison done in cmp().
-      return [s]
-    return map(try_int, re.findall(r'(\d+|\D+)', s))
-  return cmp(natsort_key(a), natsort_key(b))
-
-
-def try_lower(x):
-  """Opportunistically lower() a string if it is a string."""
-  return x.lower() if hasattr(x, 'lower') else x
-
-
-def naticasecmp(a, b):
-  """Natural string comparison, ignores case."""
-  return natcmp(try_lower(a), try_lower(b))
-
-
-def natsort(seq, cmp=natcmp, *args, **kwargs):  # pylint: disable=W0622
-  """In-place natural string sort.
-  >>> a = ['3A2', '3a1']
-  >>> natsort(a, key=try_lower)
-  >>> a
-  ['3a1', '3A2']
-  >>> a = ['3a2', '3A1']
-  >>> natsort(a, key=try_lower)
-  >>> a
-  ['3A1', '3a2']
-  >>> a = ['3A2', '3a1']
-  >>> natsort(a, cmp=naticasecmp)
-  >>> a
-  ['3a1', '3A2']
-  >>> a = ['3a2', '3A1']
-  >>> natsort(a, cmp=naticasecmp)
-  >>> a
-  ['3A1', '3a2']
-  """
-  seq.sort(cmp=cmp, *args, **kwargs)
-
-
-def natsorted(seq, cmp=natcmp, *args, **kwargs):  # pylint: disable=W0622
-  """Returns a copy of seq, sorted by natural string sort.
-
-  >>> natsorted(i for i in [4, '3a', '2', 1])
-  [1, '2', '3a', 4]
-  >>> natsorted(['a4', 'a30'])
-  ['a4', 'a30']
-  >>> natsorted(['3A2', '3a1'], key=try_lower)
-  ['3a1', '3A2']
-  >>> natsorted(['3a2', '3A1'], key=try_lower)
-  ['3A1', '3a2']
-  >>> natsorted(['3A2', '3a1'], cmp=naticasecmp)
-  ['3a1', '3A2']
-  >>> natsorted(['3a2', '3A1'], cmp=naticasecmp)
-  ['3A1', '3a2']
-  >>> natsorted(['3A2', '3a1'])
-  ['3A2', '3a1']
-  >>> natsorted(['3a2', '3A1'])
-  ['3A1', '3a2']
-  """
-  return sorted(seq, cmp=cmp, *args, **kwargs)
-
-
-if __name__ == '__main__':
-  import doctest
-  doctest.testmod()
diff --git a/pending_manager.py b/pending_manager.py
deleted file mode 100644
index 4ef64d6..0000000
--- a/pending_manager.py
+++ /dev/null
@@ -1,601 +0,0 @@
-# coding=utf8
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Commit queue manager class.
-
-Security implications:
-
-The following hypothesis are made:
-- Commit queue:
-  - Impersonate the same svn credentials that the patchset owner.
-  - Can't impersonate a non committer.
-  - SVN will check the committer write access.
-"""
-
-import datetime
-import errno
-import logging
-import os
-import socket
-import ssl
-import time
-import traceback
-import urllib2
-
-import find_depot_tools  # pylint: disable=W0611
-import checkout
-import git_cl
-import patch
-import subprocess2
-
-import errors
-import model
-from verification import base
-
-
-class PendingCommit(base.Verified):
-  """Represents a pending commit that is being processed."""
-  # Important since they tell if we need to revalidate and send try jobs
-  # again or not if any of these value changes.
-  issue = int
-  patchset = int
-  description = unicode
-  files = list
-  # Only a cache, these values can be regenerated.
-  owner = unicode
-  reviewers = list
-  base_url = unicode
-  messages = list
-  relpath = unicode
-  sort_key = unicode
-  # Only used after a patch was committed. Keeping here for try job retries.
-  revision = (None, int, unicode)
-
-  def __init__(self, **kwargs):
-    super(PendingCommit, self).__init__(**kwargs)
-    for message in self.messages:
-      # Save storage, no verifier really need 'text', just 'approval'.
-      if 'text' in message:
-        del message['text']
-
-  def pending_name(self):
-    """The name that should be used for try jobs.
-
-    It makes it possible to regenerate the try_jobs array if ever needed."""
-    return '%d-%d' % (self.issue, self.patchset)
-
-  def prepare_for_patch(self, context_obj):
-    self.revision = context_obj.checkout.prepare(self.revision)
-    # Verify revision consistency.
-    if not self.revision:
-      raise base.DiscardPending(
-          self, 'Internal error: failed to checkout. Please try again.')
-
-  def apply_patch(self, context_obj, prepare):
-    """Applies the pending patch to the checkout and throws if it fails."""
-    try:
-      if prepare:
-        self.prepare_for_patch(context_obj)
-      patches = context_obj.rietveld.get_patch(self.issue, self.patchset)
-      if not patches:
-        raise base.DiscardPending(
-            self, 'No diff was found for this patchset.')
-      if self.relpath:
-        patches.set_relpath(self.relpath)
-      self.files = [p.filename for p in patches]
-      if not self.files:
-        raise base.DiscardPending(
-            self, 'No file was found in this patchset.')
-      context_obj.checkout.apply_patch(patches)
-    except (checkout.PatchApplicationFailed, patch.UnsupportedPatchFormat) as e:
-      raise base.DiscardPending(self, str(e))
-    except subprocess2.CalledProcessError as e:
-      out = 'Failed to apply the patch.'
-      if e.stdout:
-        out += '\n%s' % e.stdout
-      raise base.DiscardPending(self, out)
-    except (ssl.SSLError, urllib2.HTTPError, urllib2.URLError) as e:
-      raise base.DiscardPending(
-          self,
-          ('Failed to request the patch to try. Please note that binary files '
-          'are still unsupported at the moment, this is being worked on.\n\n'
-          'Thanks for your patience.\n\n%s') % e)
-
-
-class PendingQueue(model.PersistentMixIn):
-  """Represents the queue of pending commits being processed.
-
-  Each entry is keyed by the issue number as a string to be json-compatible.
-  There can only be one pending commit per issue and they are fine to be
-  processed out of order.
-  """
-  pending_commits = dict
-
-  def add(self, item):
-    self.pending_commits[str(item.issue)] = item
-
-  def get(self, key):
-    return self.pending_commits[str(key)]
-
-  def iterate(self):
-    """Returns the items sorted by .sort_key to ease testability."""
-    return sorted(self.pending_commits.itervalues(), key=lambda x: x.sort_key)
-
-  def remove(self, key):
-    self.pending_commits.pop(str(key), None)
-
-
-class PendingManager(object):
-  """Fetch new issues from rietveld, pass the issues through all of verifiers
-  and then commit the patches with checkout.
-  """
-  FAILED_NO_MESSAGE = (
-      'Commit queue patch verification failed without an error message.\n'
-      'Something went wrong, probably a crash, a hickup or simply\n'
-      'the monkeys went out for dinner.\n'
-      'Please email commit-bot@chromium.org with the CL url.')
-  INTERNAL_EXCEPTION = (
-      'Commit queue had an internal error.\n'
-      'Something went really wrong, probably a crash, a hickup or\n'
-      'simply the monkeys went out for dinner.\n'
-      'Please email commit-bot@chromium.org with the CL url.')
-  DESCRIPTION_UPDATED = (
-      'Commit queue rejected this change because the description was changed\n'
-      'between the time the change entered the commit queue and the time it\n'
-      'was ready to commit. You can safely check the commit box again.')
-  TRYING_PATCH = 'CQ is trying da patch. Follow status at\n'
-  # Maximum number of commits done in a burst.
-  MAX_COMMIT_BURST = 4
-  # Delay (secs) between commit bursts.
-  COMMIT_BURST_DELAY = 8*60
-
-  def __init__(self, context_obj, pre_patch_verifiers, verifiers,
-               project_name=''):
-    """
-    Args:
-      pre_patch_verifiers: Verifiers objects that are run before applying the
-                           patch.
-      verifiers: Verifiers object run after applying the patch.
-    """
-    if not(len(pre_patch_verifiers) or len(verifiers)):
-      raise ValueError('at least one verifier should be defined (in project %s)'
-                       % project_name)
-
-    self.context = context_obj
-    self.pre_patch_verifiers = pre_patch_verifiers or []
-    self.verifiers = verifiers or []
-    self.all_verifiers = pre_patch_verifiers + verifiers
-    self.queue = PendingQueue()
-    # Keep the timestamps of the last few commits so that we can control the
-    # pace (burstiness) of commits.
-    self.recent_commit_timestamps = []
-    # Assert names are unique.
-    names = [x.name for x in pre_patch_verifiers + verifiers]
-    assert len(names) == len(set(names))
-    for verifier in self.pre_patch_verifiers:
-      assert not isinstance(verifier, base.VerifierCheckout)
-
-  def _get_user(self):
-    """Get the CQ's rietveld user name.
-
-    We need it to look for messages posted by the CQ, to figure out
-    when the commit box was checked.  TODO(sergeyberezin): when
-    Rietveld can tell this info natively, this function will be
-    obsolete.
-    """
-    # Rietveld object or its email may be missing in some unittests.
-    if self.context.rietveld and self.context.rietveld.email:
-      return self.context.rietveld.email
-    else:
-      return 'commit-bot@chromium.org'
-
-  def _set_sort_key(self, issue_data):
-    """Compute the sorting key. Must add .sort_key to issue_data.
-
-    Previously we used issue id, but a better key is the last
-    timestamp when Commit box was checked.
-    """
-    for m in issue_data['messages']:
-      if (m['sender'] == self._get_user() and
-          'CQ is trying da patch.' in m['text']):
-        issue_data['sort_key'] = m['date']
-    if 'sort_key' not in issue_data:
-      # Set a default value: the current time.
-      issue_data['sort_key'] = str(datetime.datetime.utcnow())
-
-  def look_for_new_pending_commit(self):
-    """Looks for new reviews on self.context.rietveld with c+ set.
-
-    Calls _new_pending_commit() on all new review found.
-    """
-    try:
-      new_issues = self.context.rietveld.get_pending_issues()
-    except urllib2.URLError as e:
-      if 'timed out' in e.reason:
-        # Handle timeouts gracefully. Log them and pretend there are no
-        # pending issues. We'll retry on the next iteration.
-        logging.warn('request to fetch pending issues timed out: %s' % e)
-        return
-
-      raise
-
-    # If there is an issue in processed_issues that is not in new_issues,
-    # discard it.
-    for pending in self.queue.iterate():
-      # Note that pending.issue is a int but self.queue.pending_commits keys
-      # are str due to json support.
-      if pending.issue not in new_issues:
-        logging.info('Flushing issue %d' % pending.issue)
-        self.context.status.send(
-            pending,
-            { 'verification': 'abort',
-              'payload': {
-                'output': 'CQ bit was unchecked on CL. Ignoring.' }})
-        pending.get_state = lambda: base.IGNORED
-        self._discard_pending(pending, None)
-
-    # Find new issues.
-    for issue_id in new_issues:
-      if str(issue_id) not in self.queue.pending_commits:
-        try:
-          issue_data = self.context.rietveld.get_issue_properties(
-              issue_id, True)
-          self._set_sort_key(issue_data)
-        except urllib2.HTTPError as e:
-          if e.code in (500, 502, 503):
-            # Temporary AppEngine hiccup. Just log it and continue.
-            logging.warning('%s while accessing %s. Ignoring error.' % (
-                            str(e), e.url))
-            continue
-          raise
-        except urllib2.URLError as e:
-          # Temporary AppEngine hiccup. Just log it and continue.
-          if 'timed out' in e.reason:
-            logging.warning(
-                '%s while accessing rietveld issue %s. Ignoring error.' % (
-                str(e), str(issue_id)))
-            continue
-          raise
-        except socket.error as e:
-          # Temporary AppEngine hiccup. Just log it and continue.
-          if e.errno == errno.ECONNRESET:
-            logging.warning(
-                '%s while accessing rietveld issue %s. Ignoring error.' % (
-                str(e), str(issue_id)))
-            continue
-          raise
-        except IOError as e:
-          # Temporary AppEngine hiccup. Just log it and continue.
-          if e.errno == 'socket error':
-            logging.warning(
-                '%s while accessing rietveld issue %s. Ignoring error.' % (
-                str(e), str(issue_id)))
-            continue
-          raise
-        # This assumption needs to hold.
-        assert issue_id == issue_data['issue']
-        if issue_data['patchsets'] and issue_data['commit']:
-          logging.info('Found new issue %d' % issue_id)
-          self.queue.add(
-              PendingCommit(
-                  issue=issue_id,
-                  owner=issue_data['owner_email'],
-                  reviewers=issue_data['reviewers'],
-                  patchset=issue_data['patchsets'][-1],
-                  base_url=issue_data['base_url'],
-                  description=issue_data['description'].replace('\r', ''),
-                  messages=issue_data['messages'],
-                  sort_key=issue_data['sort_key']))
-
-  def process_new_pending_commit(self):
-    """Starts verification on newly found pending commits."""
-    expected = set(i.name for i in self.all_verifiers)
-    for pending in self.queue.iterate():
-      try:
-        # Take in account the case where a verifier was removed.
-        done = set(pending.verifications.keys())
-        missing = expected - done
-        if (not missing or pending.get_state() != base.PROCESSING):
-          continue
-        logging.info(
-            'Processing issue %s @ %s (%s, %d)' % (
-                pending.issue, pending.sort_key, missing, pending.get_state()))
-        self._verify_pending(pending)
-      except base.DiscardPending as e:
-        self._discard_pending(e.pending, e.status)
-
-  def update_status(self):
-    """Updates the status for each pending commit verifier."""
-    why_nots = dict((p.issue, p.why_not()) for p in self.queue.iterate())
-
-    for verifier in self.all_verifiers:
-      try:
-        verifier.update_status(self.queue.iterate())
-      except base.DiscardPending as e:
-        # It's not efficient since it takes a full loop for each pending
-        # commit to discard.
-        self._discard_pending(e.pending, e.status)
-
-    for pending in self.queue.iterate():
-      why_not = pending.why_not()
-      if why_nots[pending.issue] != why_not:
-        self.context.status.send(
-            pending,
-            {'verification': 'why not',
-             'payload': {'message': why_not}})
-
-
-  def scan_results(self):
-    """Scans pending commits that can be committed or discarded."""
-    for pending in self.queue.iterate():
-      state = pending.get_state()
-      if state == base.FAILED:
-        self._discard_pending(
-            pending, pending.error_message() or self.FAILED_NO_MESSAGE)
-      elif state == base.SUCCEEDED:
-        if self._throttle(pending):
-          continue
-        try:
-          # Runs checks. It's be nice to run the test before the postpone,
-          # especially if the tree is closed for a long moment but at the same
-          # time it would keep fetching the rietveld status constantly.
-          self._last_minute_checks(pending)
-          self.context.status.send(
-              pending,
-              {'verification': 'why not',
-               'payload': {'message': ''}})
-
-          self._commit_patch(pending)
-        except base.DiscardPending as e:
-          self._discard_pending(e.pending, e.status)
-        except Exception as e:
-          self._discard_pending(pending, self.INTERNAL_EXCEPTION)
-          raise
-      else:
-        # When state is IGNORED, we need to keep this issue so it's not fetched
-        # another time but we can't discard it since we don't want to remove the
-        # commit bit for another project hosted on the same code review
-        # instance.
-        assert state in (base.PROCESSING, base.IGNORED)
-
-  def _verify_pending(self, pending):
-    """Initiates all the verifiers on a pending change."""
-    # Do not apply the patch if not necessary. It will be applied at commit
-    # time anyway so if the patch doesn't apply, it'll be catch later.
-    if not self._pending_run_verifiers(pending, self.pre_patch_verifiers):
-      return
-
-    if self.verifiers:
-      pending.prepare_for_patch(self.context)
-
-    # This CL is real business, alert the user that we're going to try his
-    # patch.  Note that this is done *after* syncing but *before* applying the
-    # patch.
-    self.context.status.send(
-        pending,
-        { 'verification': 'initial',
-          'payload': {'revision': pending.revision}})
-    self.context.rietveld.add_comment(
-        pending.issue,
-        self.TRYING_PATCH + '%s/%s/%d/%d\n' % (
-          self.context.status.url, pending.owner,
-          pending.issue, pending.patchset))
-
-    if self.verifiers:
-      pending.apply_patch(self.context, False)
-      previous_cwd = os.getcwd()
-      try:
-        os.chdir(self.context.checkout.project_path)
-        self._pending_run_verifiers(pending, self.verifiers)
-      finally:
-        os.chdir(previous_cwd)
-
-    # Send the initial 'why not' message.
-    if pending.why_not():
-      self.context.status.send(
-          pending,
-          {'verification': 'why not',
-           'payload': {'message': pending.why_not()}})
-
-  @classmethod
-  def _pending_run_verifiers(cls, pending, verifiers):
-    """Runs verifiers on a pending change.
-
-    Returns True if all Verifiers were run.
-    """
-    for verifier in verifiers:
-      assert verifier.name not in pending.verifications
-      verifier.verify(pending)
-      assert verifier.name in pending.verifications
-      if pending.get_state() == base.IGNORED:
-        assert pending.verifications[verifier.name].get_state() == base.IGNORED
-        # Remove all the other verifiers since we need to keep it in the
-        # 'datastore' to not retry this issue constantly.
-        for key in pending.verifications.keys():
-          if key != verifier.name:
-            del pending.verifications[key]
-        return False
-      if pending.get_state() == base.FAILED:
-        # Throw if it didn't pass, so the error message is not lost.
-        raise base.DiscardPending(
-            pending, pending.error_message() or cls.FAILED_NO_MESSAGE)
-    return True
-
-  def _last_minute_checks(self, pending):
-    """Does last minute checks on Rietvld before committing a pending patch."""
-    pending_data = self.context.rietveld.get_issue_properties(
-        pending.issue, True)
-    if pending_data['commit'] != True:
-      raise base.DiscardPending(pending, None)
-    if pending_data['closed'] != False:
-      raise base.DiscardPending(pending, None)
-    if pending.description != pending_data['description'].replace('\r', ''):
-      raise base.DiscardPending(pending, self.DESCRIPTION_UPDATED)
-    commit_user = set([self.context.rietveld.email])
-    expected = set(pending.reviewers) - commit_user
-    actual  = set(pending_data['reviewers']) - commit_user
-    # Try to be nice, if there was a drive-by review and the new reviewer left
-    # a lgtm, don't abort.
-    def is_approver(r):
-      return any(
-          m.get('approval') for m in pending_data['messages']
-          if m['sender'] == r)
-    drivers_by = [r for r in (actual - expected) if not is_approver(r)]
-    if drivers_by:
-      # That annoying driver-by.
-      raise base.DiscardPending(
-          pending,
-          'List of reviewers changed. %s did a drive-by without LGTM\'ing!' %
-          ','.join(drivers_by))
-    if pending.patchset != pending_data['patchsets'][-1]:
-      raise base.DiscardPending(pending,
-          'Commit queue failed due to new patchset.')
-
-  def _discard_pending(self, pending, message):
-    """Discards a pending commit. Attach an optional message to the review."""
-    logging.debug('_discard_pending(%s, %s)', pending.issue, message)
-    try:
-      try:
-        if pending.get_state() != base.IGNORED:
-          self.context.rietveld.set_flag(
-              pending.issue, pending.patchset, 'commit', False)
-      except urllib2.HTTPError as e:
-        logging.error(
-            'Failed to set the flag to False for %s with message %s' % (
-              pending.pending_name(), message))
-        traceback.print_stack()
-        logging.error(str(e))
-        errors.send_stack(e)
-      if message:
-        try:
-          self.context.rietveld.add_comment(pending.issue, message)
-        except urllib2.HTTPError as e:
-          logging.error(
-              'Failed to add comment for %s with message %s' % (
-                pending.pending_name(), message))
-          traceback.print_stack()
-          errors.send_stack(e)
-        self.context.status.send(
-            pending,
-            { 'verification': 'abort',
-              'payload': {
-                'output': message }})
-    finally:
-      # Most importantly, remove the PendingCommit from the queue.
-      self.queue.remove(pending.issue)
-
-  def _commit_patch(self, pending):
-    """Commits the pending patch to the repository.
-
-    Do the checkout and applies the patch.
-    """
-    try:
-      try:
-        # Make sure to apply on HEAD.
-        pending.revision = None
-        pending.apply_patch(self.context, True)
-        # Commit it.
-        commit_desc = git_cl.ChangeDescription(pending.description)
-        if (self.context.server_hooks_missing and
-            self.context.rietveld.email != pending.owner):
-          commit_desc.update_reviewers(pending.reviewers)
-          commit_desc.append_footer('Author: ' + pending.owner)
-        commit_desc.append_footer('Review URL: %s/%s' % (
-            self.context.rietveld.url,
-            pending.issue))
-        pending.revision = self.context.checkout.commit(
-            commit_desc.description, pending.owner)
-        if not pending.revision:
-          raise base.DiscardPending(pending, 'Failed to commit patch.')
-
-        # Note that the commit succeeded for commit throttling.
-        self.recent_commit_timestamps.append(time.time())
-        self.recent_commit_timestamps = (
-            self.recent_commit_timestamps[-(self.MAX_COMMIT_BURST + 1):])
-
-        viewvc_url = self.context.checkout.get_settings('VIEW_VC')
-        issue_desc = git_cl.ChangeDescription(pending.description)
-        msg = 'Committed: %s' % pending.revision
-        if viewvc_url:
-          viewvc_url = '%s%s' % (viewvc_url.rstrip('/'), pending.revision)
-          msg = 'Committed: %s' % viewvc_url
-          issue_desc.append_footer(msg)
-
-        # Update the CQ dashboard.
-        self.context.status.send(
-            pending,
-            { 'verification': 'commit',
-              'payload': {
-                'revision': pending.revision,
-                'output': msg,
-                'url': viewvc_url}})
-
-        # Closes the issue on Rietveld.
-        # TODO(csharp): Retry if exceptions are encountered.
-        try:
-          self.context.rietveld.close_issue(pending.issue)
-          self.context.rietveld.update_description(
-              pending.issue, issue_desc.description)
-          self.context.rietveld.add_comment(
-              pending.issue, 'Change committed as %s' % pending.revision)
-        except (urllib2.HTTPError, urllib2.URLError) as e:
-          # Ignore AppEngine flakiness.
-          logging.warning('Unable to fully close the issue')
-        # And finally remove the issue. If the close_issue() call above failed,
-        # it is possible the dashboard will be confused but it is harmless.
-        try:
-          self.queue.get(pending.issue)
-        except KeyError:
-          logging.error('Internal inconsistency for %d', pending.issue)
-        self.queue.remove(pending.issue)
-      except (
-          checkout.PatchApplicationFailed, patch.UnsupportedPatchFormat) as e:
-        raise base.DiscardPending(pending, str(e))
-      except subprocess2.CalledProcessError as e:
-        stdout = getattr(e, 'stdout', None)
-        out = 'Failed to apply the patch.'
-        if stdout:
-          out += '\n%s' % stdout
-        raise base.DiscardPending(pending, out)
-    except base.DiscardPending as e:
-      self._discard_pending(e.pending, e.status)
-
-  def _throttle(self, pending):
-    """Returns True if a commit should be delayed."""
-    if pending.postpone():
-      self.context.status.send(
-          pending,
-          {'verification': 'why not',
-           'payload': {
-               'message': pending.why_not()}})
-      return True
-    if not self.recent_commit_timestamps:
-      return False
-    cutoff = time.time() - self.COMMIT_BURST_DELAY
-    bursted = len([True for i in self.recent_commit_timestamps if i > cutoff])
-
-    if bursted >= self.MAX_COMMIT_BURST:
-      self.context.status.send(
-          pending,
-          {'verification': 'why not',
-           'payload': {
-               'message': ('Patch is ready to commit, but the CQ is delaying '
-                           'it because CQ has already submitted %d patches in '
-                           'the last %d seconds' %
-                           (self.MAX_COMMIT_BURST, self.COMMIT_BURST_DELAY))}})
-      return True
-
-    return False
-
-  def load(self, filename):
-    """Loads the commit queue state from a JSON file."""
-    self.queue = model.load_from_json_file(filename)
-
-  def save(self, filename):
-    """Save the commit queue state in a simple JSON file."""
-    model.save_to_json_file(filename, self.queue)
-
-  def close(self):
-    """Close all the active pending manager items."""
-    self.context.status.close()
diff --git a/post_processors/chromium_copyright.py b/post_processors/chromium_copyright.py
deleted file mode 100644
index 28c38f6..0000000
--- a/post_processors/chromium_copyright.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import datetime
-import os
-import re
-
-import errors
-
-
-def process(checkout, patch):
-  """Enforces current year in Chromium copyright."""
-  pattern = (
-    r'^(.*)Copyright (?:\(c\) )?\d{4}(|-\d{4}) The Chromium Authors. '
-    r'All rights reserved.$')
-  replacement = (
-      r'\1Copyright %s The Chromium Authors. All rights reserved.' %
-        datetime.date.today().year)
-
-  if not patch.is_new or patch.is_binary:
-    return
-  filepath = os.path.join(checkout.project_path, patch.filename)
-  try:
-    with open(filepath, 'rb') as f:
-      lines = f.read().splitlines(True)
-  except IOError, e:
-    errors.send_stack(e)
-    lines = None
-  if not lines:
-    return
-  modified = False
-  for i in xrange(min(5, len(lines))):
-    old_line = lines[i]
-    lines[i] = re.sub(pattern, replacement, lines[i])
-    if old_line != lines[i]:
-      modified = True
-      break
-  if modified:
-    with open(filepath, 'wb') as f:
-      f.write(''.join(lines))
diff --git a/projects.py b/projects.py
deleted file mode 100644
index 4a5b66d..0000000
--- a/projects.py
+++ /dev/null
@@ -1,778 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Define the supported projects."""
-
-import json
-import logging
-import os
-import re
-import sys
-import urllib2
-
-import find_depot_tools  # pylint: disable=W0611
-import checkout
-
-import async_push
-import context
-import errors
-import pending_manager
-from post_processors import chromium_copyright
-from verification import presubmit_check
-from verification import project_base
-from verification import reviewer_lgtm
-from verification import tree_status
-from verification import trigger_experimental_try_job
-from verification import try_job_steps
-from verification import try_job_on_rietveld
-from verification import try_server
-
-
-ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
-INTERNAL_DIR = os.path.abspath(
-    os.path.join(ROOT_DIR, os.pardir, 'commit-queue-internal'))
-
-# These come from commit-queue in the internal repo.
-if os.path.isdir(INTERNAL_DIR):
-  sys.path.insert(0, INTERNAL_DIR)
-  import chromium_committers  # pylint: disable=F0401
-  import gyp_committers  # pylint: disable=F0401
-  import nacl_committers  # pylint: disable=F0401
-  import skia_committers  # pylint: disable=F0401
-else:
-  print >> sys.stderr, (
-      'Failed to find commit-queue-internal; will fail to start!')
-  chromium_committers = None
-  gyp_committers = None
-  nacl_committers = None
-  skia_committers = None
-
-
-# It's tricky here because 'chrome' is remapped to 'svn' on src.chromium.org but
-# the other repositories keep their repository name. So don't list it here.
-SVN_HOST_ALIASES = [
-    'svn://svn.chromium.org',
-    'svn://chrome-svn',
-    'svn://chrome-svn.corp',
-    'svn://chrome-svn.corp.google.com'
-]
-
-CHROME_SVN_BASES = [item + '/chrome' for item in SVN_HOST_ALIASES] + [
-    'http://src.chromium.org/svn',
-    'https://src.chromium.org/svn',
-    'http://src.chromium.org/chrome',
-    'https://src.chromium.org/chrome',
-]
-
-BLINK_SVN_BASES = [item + '/blink' for item in SVN_HOST_ALIASES] + [
-    'http://src.chromium.org/blink',
-    'https://src.chromium.org/blink',
-]
-
-# Steps that are never considered to determine the try job success.
-IGNORED_STEPS = (
-  'svnkill', 'update_scripts', 'taskkill', 'cleanup_temp', 'process_dumps')
-
-# To be used in a regexp to match the branch part of an git url.
-BRANCH_MATCH = r'\@[a-zA-Z0-9\-_\.]+'
-
-
-def _read_lines(filepath, what):
-  try:
-    return open(filepath).readlines()
-  except IOError:
-    raise errors.ConfigurationError('Put the %s in %s' % (what, filepath))
-
-
-def _get_chromium_committers():
-  """Gets the list of all allowed committers."""
-  if not chromium_committers:
-    # Fake values.
-    entries = ['georges']
-  else:
-    entries = chromium_committers.get_list()
-  logging.info('Found %d committers' % len(entries))
-  return ['^%s$' % re.escape(i) for i in entries]
-
-
-def _get_skia_committers():
-  """Gets the list of all allowed committers."""
-  if not skia_committers:
-    # Fake values.
-    entries = ['georges']
-  else:
-    entries = skia_committers.get_list()
-  logging.info('Found %d committers' % len(entries))
-  return ['^%s$' % re.escape(i) for i in entries]
-
-
-def _get_nacl_committers():
-  """Gets the list of all allowed committers."""
-  if not nacl_committers:
-    # Fake values.
-    entries = ['georges']
-  else:
-    entries = nacl_committers.get_list()
-  logging.info('Found %d committers' % len(entries))
-  return ['^%s$' % re.escape(i) for i in entries]
-
-
-def _get_gyp_committers():
-  """Gets the list of all allowed committers."""
-  if not gyp_committers:
-    # Fake values.
-    entries = ['georges']
-  else:
-    entries = gyp_committers.get_list()
-  logging.info('Found %d committers' % len(entries))
-  return ['^%s$' % re.escape(i) for i in entries]
-
-
-def _chromium_lkgr():
-  try:
-    return int(
-        urllib2.urlopen('https://chromium-status.appspot.com/lkgr').read())
-  except (ValueError, IOError):
-    return None
-
-
-def _nacl_lkgr():
-  try:
-    return int(
-        urllib2.urlopen('https://nativeclient-status.appspot.com/lkgr').read())
-  except (ValueError, IOError):
-    return None
-
-
-def _chromium_status_pwd(root_dir):
-  filepath = os.path.join(root_dir, '.chromium_status_pwd')
-  return _read_lines(filepath, 'chromium-status password')[0].strip()
-
-
-def _gen_blink(user, root_dir, rietveld_obj, no_try):
-  """Generates a PendingManager commit queue for blink/trunk."""
-  local_checkout = checkout.SvnCheckout(
-      root_dir,
-      'blink',
-      user,
-      None,
-      'svn://svn.chromium.org/blink/trunk',
-      [])
-  context_obj = context.Context(
-      rietveld_obj,
-      local_checkout,
-      async_push.AsyncPush(
-        'https://chromium-status.appspot.com/cq',
-        _chromium_status_pwd(root_dir)))
-
-  project_bases = [
-      '^%s/trunk(|/.*)$' % re.escape(base) for base in BLINK_SVN_BASES]
-  project_bases.append(
-      r'^https?\:\/\/chromium.googlesource.com\/chromium\/blink(?:\.git)?%s$' %
-        BRANCH_MATCH)
-  verifiers_no_patch = [
-      project_base.ProjectBaseUrlVerifier(project_bases),
-      reviewer_lgtm.ReviewerLgtmVerifier(
-          _get_chromium_committers(),
-          [re.escape(user)]),
-  ]
-  verifiers = []
-  prereq_builder = 'blink_presubmit'
-  prereq_tests = ['presubmit']
-  step_verifiers = [
-    try_job_steps.TryJobSteps(builder_name=prereq_builder,
-                              steps=prereq_tests)]
-  if not no_try:
-    blink_tests = [
-      'blink_heap_unittests',
-      'blink_platform_unittests',
-      'webkit_lint',
-      'webkit_python_tests',
-      'webkit_tests',
-      'webkit_unit_tests',
-      'wtf_unittests',
-    ]
-
-    # A "compile-only" bot runs the webkit_lint tests (which are fast)
-    # in order to pick up the default build targets. We don't use the
-    # "compile" step because that will build all the chromium targets, not
-    # just the blink-specific ones.
-    compile_only = [ 'webkit_lint' ]
-
-    builders_and_tests = {
-      'mac_layout':       compile_only,
-      'win_layout':       compile_only,
-
-      'linux_blink':     blink_tests,
-      'linux_blink_rel': blink_tests,
-      'mac_blink_rel':   blink_tests,
-      'win_blink_rel':   blink_tests,
-    }
-
-    step_verifiers += [
-      try_job_steps.TryJobSteps(builder_name=b, prereq_builder=prereq_builder,
-                                prereq_tests=prereq_tests, steps=s)
-      for b, s in builders_and_tests.iteritems()
-    ]
-
-  verifiers.append(try_job_on_rietveld.TryRunnerRietveld(
-      context_obj,
-      'http://build.chromium.org/p/tryserver.chromium/',
-      user,
-      step_verifiers,
-      IGNORED_STEPS,
-      'src'))
-
-  verifiers.append(tree_status.TreeStatusVerifier(
-      'https://blink-status.appspot.com'))
-  return pending_manager.PendingManager(
-      context_obj,
-      verifiers_no_patch,
-      verifiers)
-
-
-def _gen_chromium(user, root_dir, rietveld_obj, no_try):
-  """Generates a PendingManager commit queue for chrome/trunk/src."""
-  local_checkout = checkout.SvnCheckout(
-      root_dir,
-      'chromium',
-      user,
-      None,
-      'svn://svn.chromium.org/chrome/trunk/src',
-      [chromium_copyright.process])
-  context_obj = context.Context(
-      rietveld_obj,
-      local_checkout,
-      async_push.AsyncPush(
-        'https://chromium-status.appspot.com/cq',
-        _chromium_status_pwd(root_dir)))
-
-  project_bases = [
-      '^%s/trunk/src(|/.*)$' % re.escape(base) for base in CHROME_SVN_BASES]
-
-  aliases = (
-    # Old path.
-    'git.chromium.org/git/chromium',
-    # New path.
-    'git.chromium.org/chromium/src',
-    'chromium.googlesource.com/chromium/src',
-    'chromium.googlesource.com/a/chromium/src',
-  )
-  project_bases.extend(
-      r'^https?\:\/\/%s(?:\.git)?%s$' % (re.escape(i), BRANCH_MATCH)
-      for i in aliases)
-  verifiers_no_patch = [
-      project_base.ProjectBaseUrlVerifier(project_bases),
-      reviewer_lgtm.ReviewerLgtmVerifier(
-          _get_chromium_committers(),
-          [re.escape(user)]),
-  ]
-  verifiers = []
-  prereq_builder = 'chromium_presubmit'
-  prereq_tests = ['presubmit']
-  step_verifiers = [
-    try_job_steps.TryJobSteps(builder_name=prereq_builder,
-                              steps=prereq_tests)]
-  if not no_try:
-    # To add tests to this list, they MUST be in
-    # /chrome/trunk/tools/build/masters/master.chromium/master_gatekeeper_cfg.py
-    # or somehow close the tree whenever they break.
-    standard_tests = [
-        'base_unittests',
-        'browser_tests',
-        'cacheinvalidation_unittests',
-        'check_deps',
-        'check_deps2git',
-        'content_browsertests',
-        'content_unittests',
-        'crypto_unittests',
-        #'gfx_unittests',
-        # Broken in release.
-        #'url_unittests',
-        'gpu_unittests',
-        'ipc_tests',
-        'interactive_ui_tests',
-        'jingle_unittests',
-        'media_unittests',
-        'net_unittests',
-        'ppapi_unittests',
-        'printing_unittests',
-        'sql_unittests',
-        'sync_unit_tests',
-        'unit_tests',
-        #'webkit_unit_tests',
-    ]
-    # Use a smaller set of tests for *_aura, since there's a lot of overlap with
-    # the corresponding *_rel builders.
-    # Note: *_aura are Release builders even if their names convey otherwise.
-    linux_aura_tests = [
-      'app_list_unittests',
-      'aura_unittests',
-      'browser_tests',
-      'compositor_unittests',
-      'content_browsertests',
-      'content_unittests',
-      'events_unittests',
-      'interactive_ui_tests',
-      'unit_tests',
-    ]
-    builders_and_tests = {
-      # TODO(maruel): Figure out a way to run 'sizes' where people can
-      # effectively update the perf expectation correctly.  This requires a
-      # clobber=True build running 'sizes'. 'sizes' is not accurate with
-      # incremental build. Reference:
-      # http://chromium.org/developers/tree-sheriffs/perf-sheriffs.
-      # TODO(maruel): An option would be to run 'sizes' but not count a failure
-      # of this step as a try job failure.
-      'android_dbg': ['slave_steps'],
-      'android_clang_dbg': ['slave_steps'],
-      'android_aosp': ['compile'],
-      'ios_dbg_simulator': [
-        'compile',
-        'base_unittests',
-        'components_unittests',
-        'content_unittests',
-        'crypto_unittests',
-        'url_unittests',
-        'net_unittests',
-        'sql_unittests',
-        'ui_unittests',
-      ],
-      'ios_rel_device': ['compile'],
-      'ios_rel_device_ninja': ['compile'],
-      'linux_aura': linux_aura_tests,
-      'linux_clang': ['compile'],
-      'linux_chromeos_clang': ['compile'],
-      # Note: It is a Release builder even if its name convey otherwise.
-      'linux_chromeos': standard_tests + [
-        'app_list_unittests',
-        'aura_unittests',
-        'ash_unittests',
-        'chromeos_unittests',
-        'components_unittests',
-        'dbus_unittests',
-        'device_unittests',
-        'events_unittests',
-        'google_apis_unittests',
-        'sandbox_linux_unittests',
-      ],
-      'linux_rel': standard_tests + [
-        'cc_unittests',
-        'chromedriver_unittests',
-        'components_unittests',
-        'google_apis_unittests',
-        'nacl_integration',
-        'remoting_unittests',
-        'sandbox_linux_unittests',
-        'sync_integration_tests',
-        'telemetry_perf_unittests',
-        'telemetry_unittests',
-      ],
-      'mac': ['compile'],
-      'mac_rel': standard_tests + [
-        'app_list_unittests',
-        'cc_unittests',
-        'chromedriver_unittests',
-        'components_unittests',
-        'google_apis_unittests',
-        'message_center_unittests',
-        'nacl_integration',
-        'remoting_unittests',
-        'sync_integration_tests',
-        'telemetry_perf_unittests',
-        'telemetry_unittests',
-      ],
-      'win': ['compile'],
-      'win_rel': standard_tests + [
-        'app_list_unittests',
-        'ash_unittests',
-        'aura_unittests',
-        'cc_unittests',
-        'chrome_elf_unittests',
-        'chromedriver_unittests',
-        'components_unittests',
-        'compositor_unittests',
-        'events_unittests',
-        'google_apis_unittests',
-        'installer_util_unittests',
-        'mini_installer_test',
-        'nacl_integration',
-        'remoting_unittests',
-        'sync_integration_tests',
-        'telemetry_perf_unittests',
-        'telemetry_unittests',
-        'views_unittests',
-      ],
-      'win_x64_rel': [
-        'base_unittests',
-      ],
-    }
-
-    swarm_enabled_tests = (
-      'base_unittests',
-      'browser_tests',
-      'interactive_ui_tests',
-      'net_unittests',
-      'unit_tests',
-    )
-
-    # pylint: disable=W0612
-    swarm_test_map = dict(
-      (test, test + '_swarm') for test in swarm_enabled_tests)
-
-    # Commenting out the items below will make the CQ not use swarm for its
-    # execution. Uncomment to make the CQ use Swarming again.
-    swarm_enabled_builders_and_tests = {
-      ('linux_rel', 'linux_swarm_triggered'): swarm_test_map,
-      ('mac_rel', 'mac_swarm_triggered'): swarm_test_map,
-      ('win_rel', 'win_swarm_triggered'): swarm_test_map,
-    }
-
-    step_verifiers += [
-      try_job_steps.TryJobSteps(
-          builder_name=b, prereq_builder=prereq_builder,
-          prereq_tests=prereq_tests, steps=s)
-      for b, s in builders_and_tests.iteritems()
-      if b not in swarm_enabled_builders_and_tests
-    ] + [
-      try_job_steps.TryJobTriggeredSteps(
-        builder_name='android_dbg_triggered_tests',
-        trigger_name='android_dbg',
-        prereq_builder=prereq_builder,
-        prereq_tests=prereq_tests,
-        steps={'slave_steps': 'slave_steps'}),
-    ]
-
-    # Add the swarm enabled builders with swarm accepted tests.
-    for (builder, triggered), builder_swarm_enabled_tests in (
-        swarm_enabled_builders_and_tests.iteritems()):
-      regular_tests = list(set(builders_and_tests[builder]) -
-                           set(builder_swarm_enabled_tests))
-
-      step_verifiers.append(
-          try_job_steps.TryJobTriggeredOrNormalSteps(
-              builder_name=triggered,
-              trigger_name=builder,
-              prereq_builder=prereq_builder,
-              prereq_tests=prereq_tests,
-              steps=builder_swarm_enabled_tests,
-              trigger_bot_steps=regular_tests,
-              use_triggered_bot=False))
-
-    # Experimental recipe-based Chromium trybots. To avoid possible capacity
-    # problems, only enable for a small percentage of try runs.
-    #
-    # Note how we pass revision=None . In presence of safesync_url
-    # this makes a difference: no revision uses safesync_url,
-    # while HEAD ignores it and always fetches latest revision.
-    verifiers.append(
-        trigger_experimental_try_job.TriggerExperimentalTryJobVerifier(
-            context_obj,
-            percentage=0.25,
-            revision=None,
-            try_job_description={
-                'linux_chromium_rel': ['defaulttests'],
-                'mac_chromium_rel': ['defaulttests'],
-            }))
-
-  verifiers.append(try_job_on_rietveld.TryRunnerRietveld(
-      context_obj,
-      'http://build.chromium.org/p/tryserver.chromium/',
-      user,
-      step_verifiers,
-      IGNORED_STEPS,
-      'src'))
-
-  verifiers.append(tree_status.TreeStatusVerifier(
-      'https://chromium-status.appspot.com'))
-  return pending_manager.PendingManager(
-      context_obj,
-      verifiers_no_patch,
-      verifiers)
-
-
-def _skia_status_pwd(root_dir):
-  filepath = os.path.join(root_dir, '.skia_status_pwd')
-  return _read_lines(filepath, 'skia-status password')[0].strip()
-
-
-def _gen_skia(user, root_dir, rietveld_obj, no_try):
-  """Generates a PendingManager commit queue for Skia.
-
-  Adds the following verifiers to the PendingManager:
-  * ProjectBaseUrlVerifier
-  * ReviewerLgtmVerifier
-  * PresubmitCheckVerifier
-  * TreeStatusVerifier
-  * TryRunnerRietveld (runs compile trybots)
-  """
-  naked_url = '://skia.googlecode.com/svn/trunk'
-  local_checkout = checkout.SvnCheckout(
-      root_dir,
-      'skia',
-      user,
-      None,
-      'https' + naked_url)
-  context_obj = context.Context(
-      rietveld_obj,
-      local_checkout,
-      async_push.AsyncPush(
-          'https://skia-tree-status.appspot.com/cq',
-          _skia_status_pwd(root_dir)),
-      server_hooks_missing=True)
-
-  project_bases = [
-      '^%s(|/.*)$' % re.escape(base + naked_url) for base in ('http', 'https')
-  ]
-  project_bases.append(
-      r'^https?\:\/\/skia.googlesource.com\/skia(?:\.git)?%s$' %
-      BRANCH_MATCH)
-  verifiers_no_patch = [
-      project_base.ProjectBaseUrlVerifier(project_bases),
-      reviewer_lgtm.ReviewerLgtmVerifier(
-          _get_skia_committers(),
-          [re.escape(user)]),
-  ]
-  verifiers = [
-      presubmit_check.PresubmitCheckVerifier(context_obj),
-      tree_status.TreeStatusVerifier(
-          'https://skia-tree-status.appspot.com')
-  ]
-
-  if not no_try:
-    # TODO(skia-infrastructure-team): Use skia.org instead of the below when it
-    # is ready.
-    try_server_url = 'http://108.170.219.164:10117/'
-
-    # Get the required build steps and builder names from the try server.
-    compile_required_build_steps = json.load(
-        urllib2.urlopen(
-            try_server_url + 'json/cq_required_steps'))['cq_required_steps']
-    builder_names = list(
-        json.load(urllib2.urlopen(try_server_url + 'json/cqtrybots')))
-
-    step_verifiers = []
-    for builder_name in builder_names:
-      step_verifiers.append(
-          try_job_steps.TryJobSteps(
-              builder_name=builder_name,
-              steps=compile_required_build_steps))
-    verifiers.append(try_job_on_rietveld.TryRunnerRietveld(
-          context_obj=context_obj,
-          try_server_url=try_server_url,
-          commit_user=user,
-          step_verifiers=step_verifiers,
-          ignored_steps=[],
-          solution='src'))
-
-  return pending_manager.PendingManager(
-      context_obj,
-      verifiers_no_patch,
-      verifiers)
-
-
-def _gen_nacl(user, root_dir, rietveld_obj, no_try):
-  """Generates a PendingManager commit queue for Native Client."""
-  offset = 'trunk/src/native_client'
-  local_checkout = checkout.SvnCheckout(
-      root_dir,
-      'nacl',
-      user,
-      None,
-      'svn://svn.chromium.org/native_client/' + offset)
-  context_obj = context.Context(
-      rietveld_obj,
-      local_checkout,
-      async_push.AsyncPush(
-        'https://nativeclient-status.appspot.com/cq',
-        _chromium_status_pwd(root_dir)))
-
-  host_aliases = SVN_HOST_ALIASES + [
-      'http://src.chromium.org', 'https://src.chromium.org']
-  svn_bases = [i + '/native_client' for i in host_aliases]
-  project_bases = [
-      '^%s/%s(|/.*)$' % (re.escape(base), offset) for base in svn_bases
-  ]
-  aliases = (
-    'git.chromium.org/native_client/src/native_client',
-    'chromium.googlesource.com/native_client/src/native_client',
-  )
-  project_bases.extend(
-      r'^https?\:\/\/%s(?:\.git)?%s$' % (re.escape(i), BRANCH_MATCH)
-      for i in aliases)
-  verifiers_no_patch = [
-      project_base.ProjectBaseUrlVerifier(project_bases),
-      reviewer_lgtm.ReviewerLgtmVerifier(
-          _get_nacl_committers(),
-          [re.escape(user)]),
-  ]
-  verifiers = [
-      presubmit_check.PresubmitCheckVerifier(context_obj),
-  ]
-  if not no_try:
-    # Grab the list of all the builders here. The commit queue needs to know
-    # which builders were triggered. TODO: makes this more automatic.
-    url = 'http://build.chromium.org/p/tryserver.nacl/json/builders'
-    builders_and_tests = dict(
-      (key, []) for key in json.load(urllib2.urlopen(url))
-      if (key.startswith('nacl-') and
-          'toolchain' not in key and
-          'valgrind' not in key and
-          'perf_panda' not in key and
-          'arm_hw' not in key and
-          'shared' not in key and
-          'coverage' not in key)
-    )
-    verifiers.append(try_server.TryRunnerSvn(
-        context_obj,
-        'http://build.chromium.org/p/tryserver.nacl/',
-        user,
-        builders_and_tests,
-        IGNORED_STEPS,
-        'native_client',
-        ['--root', 'native_client'],
-        _nacl_lkgr))
-
-  verifiers.append(tree_status.TreeStatusVerifier(
-      'https://nativeclient-status.appspot.com'))
-  return pending_manager.PendingManager(
-      context_obj,
-      verifiers_no_patch,
-      verifiers)
-
-
-def _gen_gyp(user, root_dir, rietveld_obj, no_try):
-  """Generates a PendingManager commit queue for GYP."""
-  naked_url = '://gyp.googlecode.com/svn/trunk'
-  local_checkout = checkout.SvnCheckout(
-      root_dir,
-      'gyp',
-      user,
-      None,
-      'https' + naked_url)
-  context_obj = context.Context(
-      rietveld_obj,
-      local_checkout,
-      async_push.AsyncPush(
-        'https://chromium-status.appspot.com/cq/receiver',
-        _chromium_status_pwd(root_dir)))
-
-  project_bases = [
-      '^%s(|/.*)$' % re.escape(base + naked_url) for base in ('http', 'https')
-  ]
-  verifiers_no_patch = [
-      project_base.ProjectBaseUrlVerifier(project_bases),
-      reviewer_lgtm.ReviewerLgtmVerifier(
-          _get_gyp_committers(),
-          [re.escape(user)]),
-  ]
-  verifiers = []
-  if not no_try:
-    # Grab the list of all the builders here. The commit queue needs to know
-    # which builders were triggered. TODO: makes this more automatic.
-    # GYP is using the Nacl try server.
-    url = 'http://build.chromium.org/p/tryserver.nacl/json/builders'
-    builders_and_tests = dict(
-      (key, []) for key in json.load(urllib2.urlopen(url))
-      if key.startswith('gyp-')
-    )
-    verifiers.append(try_server.TryRunnerSvn(
-        context_obj,
-        'http://build.chromium.org/p/tryserver.nacl/',
-        user,
-        builders_and_tests,
-        IGNORED_STEPS,
-        'gyp',
-        ['--root', 'gyp'],
-        lambda: None))
-
-  verifiers.append(tree_status.TreeStatusVerifier(
-      'https://gyp-status.appspot.com/status'))
-  return pending_manager.PendingManager(
-      context_obj,
-      verifiers_no_patch,
-      verifiers)
-
-
-def _gen_tools(user, root_dir, rietveld_obj, _no_try):
-  """Generates a PendingManager commit queue for everything under
-  chrome/trunk/tools.
-
-  These don't have a try server but have presubmit checks.
-  """
-  # Ignore no_try.
-  path = 'tools'
-  project_bases = [
-      '^%s/trunk/%s(|/.*)$' % (re.escape(base), path)
-      for base in CHROME_SVN_BASES
-  ]
-  aliases = (
-    # Old path.
-    'git.chromium.org/git/chromium/tools',
-    # New path.
-    'git.chromium.org/chromium/tools',
-    'chromium.googlesource.com/chromium/tools',
-    'chromium.googlesource.com/a/chromium/tools',
-  )
-  project_bases.extend(
-      r'^https?\:\/\/%s\/([a-z0-9\-_]+)(?:\.git)?%s$' % (
-        re.escape(i), BRANCH_MATCH) for i in aliases)
-  return _internal_simple(path, project_bases, user, root_dir, rietveld_obj)
-
-
-def _gen_chromium_deps(user, root_dir, rietveld_obj, _no_try):
-  """Generates a PendingManager commit queue for
-  chrome/trunk/deps/.
-  """
-  # Ignore no_try.
-  path = 'deps'
-  project_bases = [
-      '^%s/trunk/%s(|/.*)$' % (re.escape(base), path)
-      for base in CHROME_SVN_BASES
-  ]
-  return _internal_simple(path, project_bases, user, root_dir, rietveld_obj)
-
-
-def _internal_simple(path, project_bases, user, root_dir, rietveld_obj):
-  """Generates a PendingManager commit queue for chrome/trunk/tools/build."""
-  local_checkout = checkout.SvnCheckout(
-      root_dir,
-      os.path.basename(path),
-      user,
-      None,
-      'svn://svn.chromium.org/chrome/trunk/' + path,
-      [chromium_copyright.process])
-  context_obj = context.Context(
-      rietveld_obj,
-      local_checkout,
-      async_push.AsyncPush(
-        'https://chromium-status.appspot.com/cq',
-        _chromium_status_pwd(root_dir)))
-
-  verifiers_no_patch = [
-      project_base.ProjectBaseUrlVerifier(project_bases),
-      reviewer_lgtm.ReviewerLgtmVerifier(
-          _get_chromium_committers(),
-          [re.escape(user)]),
-  ]
-  verifiers = [
-      presubmit_check.PresubmitCheckVerifier(context_obj, timeout=900),
-  ]
-
-  return pending_manager.PendingManager(
-      context_obj,
-      verifiers_no_patch,
-      verifiers)
-
-
-def supported_projects():
-  """List the projects that can be managed by the commit queue."""
-  return sorted(
-      x[5:] for x in dir(sys.modules[__name__]) if x.startswith('_gen_'))
-
-
-def load_project(project, user, root_dir, rietveld_obj, no_try):
-  """Loads the specified project."""
-  assert os.path.isabs(root_dir)
-  return getattr(sys.modules[__name__], '_gen_' + project)(
-      user, root_dir, rietveld_obj, no_try)
diff --git a/sig_handler.py b/sig_handler.py
deleted file mode 100644
index 59f42a2..0000000
--- a/sig_handler.py
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import logging as _logging
-import signal as _signal
-import threading as _threading
-
-_OK_HANDLERS = set((
-    _signal.SIG_DFL,
-    _signal.SIG_IGN,
-    _signal.default_int_handler,
-))
-
-# Only manipulated on the main thread, so it doesn't need a lock.
-_PREV_HANDLERS = {}
-
-_SET_SIGNALS_LOCK = _threading.Lock()
-_SET_SIGNALS = set()
-
-
-def _handler(signal_num, _):
-  with _SET_SIGNALS_LOCK:
-    _SET_SIGNALS.add(signal_num)
-  _signal.signal(signal_num, _PREV_HANDLERS[signal_num])
-  _logging.warn(
-      '\n'
-      'commit-queue will exit at the end of this processing loop.\n'
-      'Hit Ctrl-C again to exit immediately.'
-  )
-
-
-def getTriggeredSignals():
-  with _SET_SIGNALS_LOCK:
-    return _SET_SIGNALS.copy()
-
-
-def installHandlers(*signal_numbers):
-  for signal_num in signal_numbers:
-    cur_handler = _signal.getsignal(signal_num)
-    if cur_handler == _handler:
-      continue
-
-    assert cur_handler in _OK_HANDLERS, \
-        'A signal handler is already installed for signal %d' % signal_num
-
-    _PREV_HANDLERS[signal_num] = cur_handler
-    _signal.signal(signal_num, _handler)
diff --git a/subversion_config/config b/subversion_config/config
deleted file mode 100644
index 83d1afe..0000000
--- a/subversion_config/config
+++ /dev/null
@@ -1,54 +0,0 @@
-# Chromium-specific config file to put at ~/.subversion/config or %USERPROFILE%\AppData\Roaming\Subversion\config
-# Inspired by http://src.chromium.org/svn/trunk/tools/build/slave/config
-
-[auth]
-# Warning, this is insecure.
-store-passwords=yes
-
-[miscellany]
-global-ignores = *.pyc *.user *.suo *.bak *~ #*# *.ncb *.o *.lo *.la .*~ .#* .DS_Store .*.swp *.mk *.Makefile *.sln *.vcproj *.rules *.xcodeproj
-enable-auto-props = yes
-
-[auto-props]
-*.afm = svn:eol-style=LF
-*.asm = svn:eol-style=LF
-*.bat = svn:eol-style=CRLF
-*.c = svn:eol-style=LF
-*.cc = svn:eol-style=LF
-*.cpp = svn:eol-style=LF
-*.css = svn:eol-style=LF;svn:mime-type=text/css
-*.def = svn:eol-style=LF
-*.dll = svn:executable
-*.exe = svn:executable
-*.grd = svn:eol-style=LF
-*.gyp = svn:eol-style=LF
-*.gypi = svn:eol-style=LF
-*.h = svn:eol-style=LF
-*.htm = svn:eol-style=LF;svn:mime-type=text/html
-*.html = svn:eol-style=LF;svn:mime-type=text/html
-*.idl = svn:eol-style=LF
-*.jpg = svn:mime-type=image/jpeg
-*.java = svn:eol-style=LF
-*.js = svn:eol-style=LF;svn:mime-type=text/javascript
-*.json = svn:eol-style=LF
-*.m = svn:eol-style=LF
-*.make = svn:eol-style=LF
-*.mm = svn:eol-style=LF
-*.mock-http-headers = svn:eol-style=LF
-*.obsolete = svn:eol-style=LF
-*.pdf = svn:mime-type=application/pdf
-*.pl = svn:eol-style=LF
-*.pm = svn:eol-style=LF
-*.png = svn:mime-type=image/png
-*.py = svn:eol-style=LF
-*.pyd = svn:executable
-*.s = svn:eol-style=LF
-*.S = svn:eol-style=LF
-*.sh = svn:eol-style=LF;svn:executable
-*.svg = svn:eol-style=LF
-*.txt = svn:eol-style=LF
-*.webp = svn:mime-type=image/webp
-*.xml = svn:eol-style=LF;svn:mime-type=text/xml
-*.xtb = svn:eol-style=LF
-DEPS = svn:eol-style=LF
-Makefile = svn:eol-style=LF
diff --git a/tests/authors_white_list_test.py b/tests/authors_white_list_test.py
deleted file mode 100755
index feb0675..0000000
--- a/tests/authors_white_list_test.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Unit tests for verification/authors_white_list.py."""
-
-import os
-import sys
-import unittest
-
-ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
-sys.path.insert(0, os.path.join(ROOT_DIR, '..'))
-
-from verification import base
-from verification import authors_white_list
-
-# From tests/
-import mocks
-
-
-class AuthorTest(mocks.TestCase):
-  def test_rejected(self):
-    self.pending.owner = 'georges@micro.com'
-    self._check(
-        'Can\'t commit because the owner %s not in whitelist' %
-        self.pending.owner)
-
-  def test_allowed(self):
-    self.pending.owner = 'georges@example.com'
-    self._check(None)
-
-  def _check(self, error_message):
-    ver = authors_white_list.AuthorVerifier([r'^[\-\w]+\@example\.com$'])
-    ver.verify(self.pending)
-    ver.update_status([self.pending])
-    name = authors_white_list.AuthorVerifier.name
-    self.assertEqual(self.pending.verifications.keys(), [name])
-    self.assertEqual(
-        self.pending.verifications[name].error_message, error_message)
-    if error_message:
-      self.assertEqual(
-          self.pending.verifications[name].get_state(), base.FAILED)
-    else:
-      self.assertEqual(
-          self.pending.verifications[name].get_state(), base.SUCCEEDED)
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/tests/buildbot_json_test.py b/tests/buildbot_json_test.py
deleted file mode 100755
index 561e59a..0000000
--- a/tests/buildbot_json_test.py
+++ /dev/null
@@ -1,461 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Unit tests for buildbot_json.py."""
-
-import json
-import logging
-import os
-import cStringIO
-import StringIO
-import sys
-import unittest
-import urllib
-
-ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
-sys.path.insert(0, os.path.join(ROOT_DIR, '..'))
-
-import find_depot_tools  # pylint: disable=W0611
-from testing_support import auto_stub
-
-# in tests/
-import reduce_test_data  # pylint: disable=F0401
-
-# In root
-import buildbot_json
-
-
-class BuildbotJsonTest(auto_stub.TestCase):
-  def setUp(self):
-    super(BuildbotJsonTest, self).setUp()
-    # Default mock.
-    self.old_urlopen = self.mock(urllib, 'urlopen', self.mockurlopen)
-    self.mock(sys, 'stderr', cStringIO.StringIO())
-    self.mock(sys, 'stdout', cStringIO.StringIO())
-    self.mock(buildbot_json.time, 'time', lambda: 1325394000.01)
-    self.url = 'http://build.chromium.org/p/tryserver.chromium'
-    self.datadir = os.path.join(ROOT_DIR, 'data')
-    if not os.path.isdir(self.datadir):
-      os.mkdir(self.datadir)
-    self.test_id = self.id().split('BuildbotJsonTest.', 1)[1]
-    self.filepath = os.path.join(self.datadir, self.test_id) + '.json'
-    self.queue = []
-    self.training = False
-    if os.path.isfile(self.filepath):
-      self.queue = json.load(open(self.filepath))
-      # Auto upgrade old data.
-      for i in xrange(len(self.queue)):
-        url = self.queue[i][0]
-        if not url.endswith('filter=1'):
-          if '?' in url:
-            url += '&filter=1'
-          else:
-            url += '?filter=1'
-          self.queue[i][0] = url
-          logging.warn('Auto-convert to training because missing filter=1.')
-          self.training = True
-    self.queue_index = 0
-    self.reducer = reduce_test_data.Filterer()
-
-  def tearDown(self):
-    try:
-      if not self.has_failed():
-        if self.queue_index < len(self.queue):
-          self.queue = self.queue[:self.queue_index]
-          logging.warning('Auto-convert to training because of queue overflow')
-          self.training = True
-        if self.training:
-          json.dump(self.queue, open(self.filepath, 'w'), separators=(',',':'))
-        self.assertEqual(self.queue_index, len(self.queue))
-        self.assertOut('stderr', '')
-        self.assertOut('stdout', '')
-      else:
-        if self.training:
-          logging.error('Not saving data even if in training mode.')
-    finally:
-      # Make sure the super class tearDown() function is called so stubs are
-      # removed.
-      super(BuildbotJsonTest, self).tearDown()
-    if self.training:
-      self.fail(
-          'Don\'t worry, it\'s just updating internal files. Please run '
-          'again.\n%s' % '\n'.join(q[0] for q in self.queue))
-
-  def assertOut(self, out, expected):
-    """Check stderr/stdout and resets it."""
-    self.assertEqual(str(expected), str(getattr(sys, out).getvalue()))
-    self.mock(sys, out, cStringIO.StringIO())
-
-  def mockurlopen(self, url):
-    self.assertTrue(self.queue_index <= len(self.queue))
-    if self.queue_index != len(self.queue):
-      expected_url, data = self.queue[self.queue_index]
-      if url != expected_url:
-        logging.warn(
-            'Auto-convert to training because %s != %s.' % (url, expected_url))
-        self.training = True
-        # Delete the remainder of the queue.
-        self.queue = self.queue[:self.queue_index]
-
-    if self.queue_index == len(self.queue):
-      data = self.old_urlopen(url).read()
-      self.training = True
-
-    # Re-filter it.
-    try:
-      data = json.loads(data)
-    except ValueError:
-      self.fail('Failed to decode %s' % url)
-    expected_url, new_data = self.reducer.filter_response(url, data)
-    assert new_data
-    new_data_json = json.dumps(new_data, separators=(',',':'))
-
-    if self.queue_index == len(self.queue):
-      self.queue.append((url, new_data_json))
-    elif new_data != data:
-      logging.warn(
-          'Auto-convert to training because url %s\n%s != %s.' % (
-            url, data, new_data))
-      self.queue[self.queue_index] = [url, new_data_json]
-      self.training = True
-    channel = StringIO.StringIO(new_data_json)
-    channel.headers = '<mocked headers>'
-    self.queue_index += 1
-    return channel
-
-  def testCommands(self):
-    # Assert no new command was added, otherwise a test needs to be written.
-    expected = [
-        'busy',
-        'builds',
-        'count',
-        'current',
-        'disconnected',
-        'help',
-        'idle',
-        'interactive',
-        'last_failure',
-        'pending',
-        'run',
-    ]
-    actual = [i[3:] for i in dir(buildbot_json) if i.startswith('CMD')]
-    self.assertEqual(sorted(expected), sorted(actual))
-    for i in actual:
-      self.assertTrue(hasattr(self, 'testCMD' + i))
-
-  def testCMDbusy(self):
-    parser = buildbot_json.gen_parser()
-    self.assertEqual(
-        0,
-        buildbot_json.CMDbusy(parser, [self.url, '-b', 'linux']))
-    filepath = os.path.join(self.datadir, self.test_id) + '_expected.txt'
-    if self.training or not os.path.isfile(filepath):
-      # pylint: disable=E1101
-      json.dump(sys.stdout.getvalue(), open(filepath, 'w'))
-    expected = json.load(open(filepath))
-    self.assertOut('stdout', expected)
-
-  def testCMDbuilds(self):
-    parser = buildbot_json.gen_parser()
-    self.assertEqual(
-        0,
-        buildbot_json.CMDbuilds(
-          parser, [self.url, '-b', 'linux', '-s', 'vm146-m4', '-q']))
-    filepath = os.path.join(self.datadir, self.test_id) + '_expected.txt'
-    if self.training or not os.path.isfile(filepath):
-      # pylint: disable=E1101
-      json.dump(sys.stdout.getvalue(), open(filepath, 'w'))
-    expected = json.load(open(filepath))
-    self.assertOut('stdout', expected)
-
-  def testCMDcount(self):
-    self.mock(buildbot_json.time, 'time', lambda: 1348166285.56)
-    parser = buildbot_json.gen_parser()
-    self.assertEqual(
-        0,
-        buildbot_json.CMDcount(
-            parser, [self.url, '-b', 'linux', '-o' '360']))
-    filepath = os.path.join(self.datadir, self.test_id) + '_expected.txt'
-    if self.training or not os.path.isfile(filepath):
-      # pylint: disable=E1101
-      json.dump(sys.stdout.getvalue(), open(filepath, 'w'))
-    expected = json.load(open(filepath))
-    self.assertOut('stdout', expected)
-
-  def testCMDdisconnected(self):
-    parser = buildbot_json.gen_parser()
-    self.assertEqual(
-        0,
-        buildbot_json.CMDdisconnected(parser, [self.url]))
-    self.assertOut(
-        'stdout',
-        'vm112-m4\nvm122-m4\nvm124-m4\nvm131-m4\nvm134-m4\nvm139-m4\nvm143-m4\n'
-        'vm146-m4\nvm157-m4\nvm162-m4\nvm165-m4\nvm60-m4\nvm62-m4\nvm64-m4\n')
-
-  def testCMDhelp(self):
-    parser = buildbot_json.gen_parser()
-    self.assertEqual(0, buildbot_json.CMDhelp(parser, []))
-    # No need to check exact output here.
-    # pylint: disable=E1101
-    self.assertTrue(
-        'show program\'s version number and exit\n' in sys.stdout.getvalue())
-    self.mock(sys, 'stdout', cStringIO.StringIO())
-
-  def testCMDidle(self):
-    parser = buildbot_json.gen_parser()
-    self.assertEqual(
-        0,
-        buildbot_json.CMDidle(parser, [self.url, '--builder', 'linux_clang']))
-    self.assertOut(
-        'stdout', 'Builder linux_clang: vm104-m4, vm113-m4, vm165-m4\n')
-
-  def testCMDinteractive(self):
-    self.mock(sys, 'stdin', cStringIO.StringIO('exit()'))
-    parser = buildbot_json.gen_parser()
-    try:
-      # TODO(maruel): Real testing.
-      buildbot_json.CMDinteractive(parser, [self.url])
-      self.fail()
-    except SystemExit:
-      pass
-    self.assertOut(
-        'stderr',
-        'Buildbot interactive console for "http://build.chromium.org'
-        '/p/tryserver.chromium".\nHint: Start with typing: '
-        '\'buildbot.printable_attributes\' or \'print str(buildbot)\' to '
-        'explore.\n')
-    self.assertOut('stdout', '>>> ')
-
-  def testCMDlast_failure(self):
-    parser = buildbot_json.gen_parser()
-    self.assertEqual(
-        0,
-        buildbot_json.CMDlast_failure(
-            parser, [self.url, '-b', 'linux', '--step', 'compile']))
-    self.assertOut(
-        'stdout',
-        '27369 on vm136-m4: blame:jam@chromium.org\n'
-        '27367 on vm158-m4: blame:jam@chromium.org\n')
-
-  def testCMDpending(self):
-    parser = buildbot_json.gen_parser()
-    self.assertEqual(0, buildbot_json.CMDpending(parser, [self.url]))
-    self.assertOut('stdout',
-        "Builder linux_touch: 2\n"
-        "  revision: HEAD\n  change:\n    comment: u''\n"
-        "    who:     saintlou@google.com\n  revision: HEAD\n  change:\n"
-        "    comment: u''\n    who:     saintlou@google.com\n")
-
-  def testCMDcurrent(self):
-    parser = buildbot_json.gen_parser()
-    self.assertEqual(0, buildbot_json.CMDcurrent(parser, [self.url]))
-    filepath = os.path.join(self.datadir, self.test_id) + '_expected.txt'
-    if self.training or not os.path.isfile(filepath):
-      # pylint: disable=E1101
-      json.dump(sys.stdout.getvalue(), open(filepath, 'w'))
-    expected = json.load(open(filepath))
-    self.assertOut('stdout', expected)
-
-  def testCMDrun(self):
-    parser = buildbot_json.gen_parser()
-    self.assertEqual(
-        0,
-        buildbot_json.CMDrun(
-          parser, [self.url, "print '\\n'.join(buildbot.builders.keys)"]))
-    self.assertOut('stdout', 'linux\nlinux_clang\nlinux_touch\n')
-
-  def testCurrentBuilds(self):
-    b = buildbot_json.Buildbot('http://build.chromium.org/p/tryserver.chromium')
-    actual = []
-    for builder in b.builders:
-      self.assertEqual([], list(builder.current_builds.cached_children))
-      i = 0
-      last_build = None
-      for c in builder.current_builds:
-        self.assertEqual(builder, c.builder)
-        actual.append(str(c))
-        i += 1
-        last_build = c
-      if i:
-        self.assertEqual(last_build.number, builder.builds[-1].number)
-      self.assertEqual(i, len(list(builder.current_builds.cached_children)))
-      builder.current_builds.discard()
-      self.assertEqual([], list(builder.current_builds.cached_children))
-
-    filepath = os.path.join(self.datadir, self.test_id) + '_expected.json'
-    if self.training or not os.path.isfile(filepath):
-      json.dump(actual, open(filepath, 'w'))
-    expected = json.load(open(filepath))
-    self.assertEqual(expected, actual)
-
-  def test_builds_reverse(self):
-    # Check the 2 last builds from 'linux' using iterall() instead of
-    # __iter__(). The test also confirms that the build object itself is not
-    # loaded.
-    b = buildbot_json.Buildbot('http://build.chromium.org/p/tryserver.chromium')
-    actual = []
-    for b in b.builders['linux'].builds.iterall():
-      actual.append(b.number)
-      # When using iterall() the Build data is delay loaded:
-      assert b._data is None  # pylint: disable=W0212
-      if len(actual) == 2:
-        break
-
-    filepath = os.path.join(self.datadir, self.test_id) + '_expected.json'
-    if self.training or not os.path.isfile(filepath):
-      json.dump(actual, open(filepath, 'w'))
-    expected = json.load(open(filepath))
-    self.assertEqual(expected, actual)
-
-  def test_build_results(self):
-    b = buildbot_json.Buildbot('http://build.chromium.org/p/tryserver.chromium')
-    # builds.data['results'] is not present.
-    self.assertEqual(
-        buildbot_json.SUCCESS, b.builders['linux_clang'].builds[1638].result)
-    self.assertEqual(
-        buildbot_json.SUCCESS,
-        b.builders['linux_clang'].builds[1638].steps[0].result)
-
-  def test_build_steps_keys(self):
-    b = buildbot_json.Buildbot('http://build.chromium.org/p/tryserver.chromium')
-    build = b.builders['linux_clang'].builds[1638]
-    #self.assertEqual([0, 1, 2, 3], build.steps.keys)
-
-    # Grab cached version. There is none.
-    actual = [step for step in build.steps.cached_children]
-    self.assertEqual([], actual)
-
-    # Force load.
-    actual = [step for step in build.steps]
-    self.assertEqual(
-        [buildbot_json.SUCCESS] * 4, [step.result for step in actual])
-    self.assertEqual(
-        [True] * 4, [step.simplified_result for step in actual])
-    self.assertEqual(4, len(actual))
-
-    # Grab cached version.
-    actual = [step for step in build.steps.cached_children]
-    self.assertEqual(
-        [buildbot_json.SUCCESS] * 4, [step.result for step in actual])
-    self.assertEqual(4, len(actual))
-
-  def test_repr(self):
-    b = buildbot_json.Buildbot('http://build.chromium.org/p/tryserver.chromium')
-    self.assertEqual('<Builder key=linux>', repr(b.builders['linux']))
-    self.assertEqual("<Builders keys=['linux']>", repr(b.builders))
-
-  def test_refresh(self):
-    b = buildbot_json.Buildbot('http://build.chromium.org/p/tryserver.chromium')
-    self.assertEqual(True, b.refresh())
-
-  def test_build_step_cached_data(self):
-    b = buildbot_json.Buildbot('http://build.chromium.org/p/tryserver.chromium')
-    build = 30157
-    self.assertEqual(
-        None, b.builders['linux'].current_builds[build].steps[0].cached_data)
-    b.builders['linux'].current_builds[build].steps[0].cache()
-    self.assertEqual(
-        'update_scripts',
-        b.builders['linux'].current_builds[build].steps[0].name)
-    self.assertEqual(
-        ['browser_tests', 'ui_tests'],
-        b.builders['linux'].current_builds[build].steps.failed)
-    self.assertEqual(
-        2,
-        b.builders['linux'].current_builds[build].steps[2
-          ].cached_data['step_number'])
-    b.refresh()
-    # cache_keys() does the same thing as cache().
-    b.builders['linux'].current_builds[build].steps.cache_keys()
-
-  def test_contains(self):
-    b = buildbot_json.Buildbot('http://build.chromium.org/p/tryserver.chromium')
-    self.assertTrue('linux' in b.builders)
-    self.assertEqual(3, len(list(b.builders.cached_children)))
-    try:
-      # The dereference of an invalid key when keys are cached will throw an
-      # exception.
-      # pylint: disable=W0104
-      b.builders['non_existent']
-      self.fail()
-    except KeyError:
-      pass
-
-  def test_slaves(self):
-    b = buildbot_json.Buildbot('http://build.chromium.org/p/tryserver.chromium')
-    self.assertEqual(11, len(b.slaves.names))
-    self.assertEqual(False, b.slaves['mini34-m4'].connected)
-
-  def test_build_revision(self):
-    class Root(object):
-      @staticmethod
-      def read(_):
-        return {'sourceStamp': {'revision': 321}}
-    build = buildbot_json.Build(Root(), '123', None)
-    self.assertEqual(321, build.revision)
-
-  def test_build_revision_none(self):
-    class Root(object):
-      @staticmethod
-      def read(_):
-        return {}
-    build = buildbot_json.Build(Root(), '123', None)
-    self.assertEqual(None, build.revision)
-
-  def test_build_duration(self):
-    class Root(object):
-      @staticmethod
-      def read(_):
-        return {'times': [3, 15]}
-    build = buildbot_json.Build(Root(), '123', None)
-    self.assertEqual(12, build.duration)
-    self.assertEqual(3, build.start_time)
-    self.assertEqual(15, build.end_time)
-
-  def test_build_duration_none(self):
-    class Root(object):
-      @staticmethod
-      def read(_):
-        return {}
-    build = buildbot_json.Build(Root(), '123', None)
-    self.assertEqual(None, build.duration)
-    self.assertEqual(None, build.start_time)
-    self.assertEqual(None, build.end_time)
-
-  def test_build_steps_names(self):
-    class Root(object):
-      @staticmethod
-      def read(url):  # pylint: disable=E0213
-        self.assertEqual('123', url)
-        return {'steps': [{'name': 'a'}, {'name': 'b'}]}
-    build = buildbot_json.Build(Root(), '123', None)
-    self.assertEqual(['a', 'b'], build.steps.keys)
-
-  def test_build_step_duration(self):
-    class Root(object):
-      @staticmethod
-      def read(_):
-        return {'steps': [{'times': [3, 15], 'isStarted': True}]}
-    build = buildbot_json.Build(Root(), '123', None)
-    build_step = buildbot_json.BuildStep(buildbot_json.BuildSteps(build), 0)
-    self.assertEqual(12, build_step.duration)
-    self.assertEqual(True, build_step.is_running)
-    self.assertEqual(True, build_step.is_started)
-    self.assertEqual(False, build_step.is_finished)
-
-  def test_build_step_duration_none(self):
-    class Root(object):
-      @staticmethod
-      def read(_):
-        return {'steps': [{}]}
-    build = buildbot_json.Build(Root(), '123', None)
-    build_step = buildbot_json.BuildStep(buildbot_json.BuildSteps(build), 0)
-    self.assertEqual(None, build_step.duration)
-
-
-if __name__ == '__main__':
-  logging.basicConfig(level=
-      [logging.WARN, logging.INFO, logging.DEBUG][min(2, sys.argv.count('-v'))])
-  unittest.main()
diff --git a/tests/chromium.11299256.json b/tests/chromium.11299256.json
deleted file mode 100644
index d1fa236..0000000
--- a/tests/chromium.11299256.json
+++ /dev/null
@@ -1,969 +0,0 @@
-{
-  "__persistent_type__": "PendingQueue",
-  "pending_commits": {
-    "11299256": {
-      "__persistent_type__": "PendingCommit",
-      "base_url": "svn://svn.chromium.org/chrome/trunk/src",
-      "description": "Add rmsousa@ and remove simonmorris@ from remoting/OWNERS.\n",
-      "files": [
-        "remoting/OWNERS"
-      ],
-      "issue": 11299256,
-      "messages": [
-        {
-          "approval": false,
-          "date": "2012-11-29 18:47:47.726380",
-          "disapproval": false,
-          "recipients": [
-            "wez@chromium.org",
-            "jamiewalch@chromium.org",
-            "chromium-reviews@chromium.org",
-            "jamiewalch+watch@chromium.org",
-            "dcaiafa+watch@chromium.org",
-            "simonmorris+watch@chromium.org",
-            "hclam+watch@chromium.org",
-            "wez+watch@chromium.org",
-            "amit@chromium.org",
-            "sanjeevr@chromium.org",
-            "garykac+watch@chromium.org",
-            "lambroslambrou+watch@chromium.org",
-            "rmsousa+watch@chromium.org",
-            "alexeypa+watch@chromium.org",
-            "sergeyu+watch@chromium.org"
-          ],
-          "sender": "wez@chromium.org"
-        },
-        {
-          "approval": true,
-          "date": "2012-11-29 19:00:14.872770",
-          "disapproval": false,
-          "recipients": [
-            "wez@chromium.org",
-            "jamiewalch@chromium.org",
-            "chromium-reviews@chromium.org",
-            "jamiewalch+watch@chromium.org",
-            "dcaiafa+watch@chromium.org",
-            "simonmorris+watch@chromium.org",
-            "hclam+watch@chromium.org",
-            "wez+watch@chromium.org",
-            "amit@chromium.org",
-            "sanjeevr@chromium.org",
-            "garykac+watch@chromium.org",
-            "lambroslambrou+watch@chromium.org",
-            "rmsousa+watch@chromium.org",
-            "alexeypa+watch@chromium.org",
-            "sergeyu+watch@chromium.org"
-          ],
-          "sender": "jamiewalch@chromium.org"
-        },
-        {
-          "approval": false,
-          "date": "2012-11-29 19:08:50.400220",
-          "disapproval": false,
-          "recipients": [
-            "wez@chromium.org",
-            "jamiewalch@chromium.org",
-            "chromium-reviews@chromium.org",
-            "jamiewalch+watch@chromium.org",
-            "dcaiafa+watch@chromium.org",
-            "simonmorris+watch@chromium.org",
-            "hclam+watch@chromium.org",
-            "wez+watch@chromium.org",
-            "amit@chromium.org",
-            "sanjeevr@chromium.org",
-            "garykac+watch@chromium.org",
-            "lambroslambrou+watch@chromium.org",
-            "rmsousa+watch@chromium.org",
-            "alexeypa+watch@chromium.org",
-            "sergeyu+watch@chromium.org"
-          ],
-          "sender": "commit-bot@chromium.org"
-        },
-        {
-          "approval": false,
-          "date": "2012-11-29 19:33:59.872790",
-          "disapproval": false,
-          "recipients": [
-            "wez@chromium.org",
-            "jamiewalch@chromium.org",
-            "chromium-reviews@chromium.org",
-            "jamiewalch+watch@chromium.org",
-            "dcaiafa+watch@chromium.org",
-            "simonmorris+watch@chromium.org",
-            "hclam+watch@chromium.org",
-            "wez+watch@chromium.org",
-            "amit@chromium.org",
-            "sanjeevr@chromium.org",
-            "garykac+watch@chromium.org",
-            "lambroslambrou+watch@chromium.org",
-            "rmsousa+watch@chromium.org",
-            "alexeypa+watch@chromium.org",
-            "sergeyu+watch@chromium.org"
-          ],
-          "sender": "commit-bot@chromium.org"
-        }
-      ],
-      "owner": "wez@chromium.org",
-      "patchset": 1,
-      "relpath": "",
-      "reviewers": [
-        "jamiewalch@chromium.org"
-      ],
-      "revision": 170244,
-      "verifications": {
-        "presubmit": {
-          "__persistent_type__": "SimpleStatus",
-          "error_message": null,
-          "state": 0
-        },
-        "project_bases": {
-          "__persistent_type__": "SimpleStatus",
-          "error_message": null,
-          "state": 0
-        },
-        "reviewer_lgtm": {
-          "__persistent_type__": "LgtmStatus",
-          "error_message": null,
-          "state": 0
-        },
-        "tree status": {
-          "__persistent_type__": "TreeStatus",
-          "error_message": null,
-          "issue": 11299256,
-          "last_tree_status": "",
-          "tree_status_url": "http://chromium-status.appspot.com"
-        },
-        "try job rietveld": {
-          "__persistent_type__": "RietveldTryJobs",
-          "step_verifiers": [
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "android_dbg",
-              "steps": ["build"]
-            },
-            {
-              "__persistent_type__": "TryJobTriggeredSteps",
-              "builder_name": "android_dbg_triggered_tests",
-              "trigger_name": "android_dbg",
-              "steps": {
-                "build": "build"
-              }
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "ios_dbg_simulator",
-              "steps": [
-                "compile",
-                "base_unittests",
-                "crypto_unittests",
-                "googleurl_unittests",
-                "sql_unittests"
-              ]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "ios_rel_device",
-              "steps": ["compile"]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "linux_aura",
-              "steps": [
-                "aura_unittests",
-                "content_unittests",
-                "content_browsertests",
-                "views_unittests"
-              ]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "linux_chromeos",
-              "steps": [
-                "base_unittests",
-                "browser_tests",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "unit_tests",
-                "aura_unittests",
-                "chromeos_unittests",
-                "dbus_unittests",
-                "device_unittests",
-                "sandbox_linux_unittests"
-              ]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "linux_clang",
-              "steps": ["compile"]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "linux_rel",
-              "steps": [
-                "base_unittests",
-                "browser_tests",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "unit_tests",
-                "nacl_integration",
-                "remoting_unittests",
-                "sandbox_linux_unittests",
-                "sync_integration_tests"
-              ]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "mac",
-              "steps": ["compile"]
-            },
-            {
-             "__persistent_type__": "TryJobSteps",
-              "builder_name": "mac_rel",
-              "steps": [
-                "base_unittests",
-                "browser_tests",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "unit_tests",
-                "nacl_integration",
-                "remoting_unittests",
-                "sync_integration_tests"
-              ]
-            },
-            {
-             "__persistent_type__": "TryJobSteps",
-              "builder_name": "win",
-              "steps": ["compile"]
-            },
-            {
-             "__persistent_type__": "TryJobSteps",
-              "builder_name": "win_aura",
-              "steps": [
-                "aura_unittests",
-                "content_unittests",
-                "content_browsertests",
-                "views_unittests"
-               ]
-            },
-            {
-             "__persistent_type__": "TryJobSteps",
-              "builder_name": "win_rel",
-              "steps": [
-                "base_unittests",
-                "browser_tests",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "unit_tests",
-                "chrome_frame_net_tests",
-                "chrome_frame_unittests",
-                "installer_util_unittests",
-                "mini_installer_test",
-                "nacl_integration",
-                "remoting_unittests",
-                "sync_integration_tests"
-              ]
-            }
-          ],
-          "error_message": null,
-          "irrelevant": [],
-          "pendings": [
-            {
-              "__persistent_type__": "RietveldTryJobPending",
-              "builder": "ios_rel_device",
-              "clobber": false,
-              "requested_steps": [
-                "compile"
-              ],
-              "revision": null,
-              "tries": 1
-            }
-          ],
-          "skipped": false,
-          "try_jobs": {
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBi6Fww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 2303,
-              "builder": "linux_aura",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224851.51483,
-              "parent_key": null,
-              "requested_steps": [
-                "content_unittests"
-              ],
-              "revision": "HEAD",
-              "started": 1354224034,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "content_unittests"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiJJww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 18148,
-              "builder": "android_dbg",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224029.184685,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216383,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "cleanup_temp",
-                "build",
-                "trigger",
-                "Environment setup",
-                "compile",
-                "findbugs",
-                "Zip build"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiKJww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 2256,
-              "builder": "linux_aura",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224028.894632,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216382,
-              "steps_failed": [
-                "content_unittests"
-              ],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "views_unittests",
-                "aura_unittests",
-                "content_browsertests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiRTgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 39097,
-              "builder": "win",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224028.846184,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216383,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "process_dumps"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiSTgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 85200,
-              "builder": "win_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224029.232662,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216383,
-              "steps_failed": [
-                "compile"
-              ],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiiHww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 67189,
-              "builder": "linux_clang",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224028.993626,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216382,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBipRgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 77603,
-              "builder": "mac_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354226386.79798,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216383,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "content_unittests",
-                "browser_tests",
-                "content_browsertests",
-                "sync_integration_tests",
-                "nacl_integration"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBj5VQw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 5853,
-              "builder": "win_aura",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224029.040092,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216383,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "content_unittests",
-                "views_unittests",
-                "aura_unittests",
-                "content_browsertests",
-                "process_dumps"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBj6VQw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 85346,
-              "builder": "win_rel",
-              "clobber": true,
-              "completed": true,
-              "init_time": 1354245707.031492,
-              "parent_key": null,
-              "requested_steps": [
-                "base_unittests",
-                "browser_tests",
-                "cacheinvalidation_unittests",
-                "check_deps",
-                "chrome_frame_net_tests",
-                "chrome_frame_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "installer_util_unittests",
-                "interactive_ui_tests",
-                "ipc_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "mini_installer_test",
-                "nacl_integration",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "sql_unittests",
-                "sync_integration_tests",
-                "sync_unit_tests",
-                "unit_tests"
-              ],
-              "revision": "HEAD",
-              "started": 1354229009,
-              "steps_failed": [
-                "browser_tests",
-                "content_browsertests",
-                "sync_integration_tests",
-                "chrome_frame_net_tests",
-                "nacl_integration"
-              ],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "interactive_ui_tests",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "content_unittests",
-                "installer_util_unittests",
-                "mini_installer_test",
-                "chrome_frame_unittests"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjBPgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 18456,
-              "builder": "mac",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224028.797491,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216383,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjCPgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 85204,
-              "builder": "win_rel",
-              "clobber": true,
-              "completed": true,
-              "init_time": 1354224029.088897,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216934,
-              "steps_failed": [
-                "compile"
-              ],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjEPgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 85487,
-              "builder": "win_rel",
-              "clobber": true,
-              "completed": true,
-              "init_time": 1354246399.951257,
-              "parent_key": null,
-              "requested_steps": [
-                "browser_tests"
-              ],
-              "revision": "HEAD",
-              "started": 1354240964,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "browser_tests",
-                "process_dumps"
-              ],
-              "tries": 2
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjJZQw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 63013,
-              "builder": "linux_chromeos",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224851.513158,
-              "parent_key": null,
-              "requested_steps": [
-                "interactive_ui_tests"
-              ],
-              "revision": "HEAD",
-              "started": 1354224073,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjZNgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 62909,
-              "builder": "linux_chromeos",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224028.748252,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216396,
-              "steps_failed": [
-                "interactive_ui_tests"
-              ],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "chromeos_unittests",
-                "crypto_unittests",
-                "dbus_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "content_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sandbox_linux_unittests",
-                "aura_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "browser_tests",
-                "content_browsertests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjrBww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 79258,
-              "builder": "linux_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224028.9432,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216383,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "sandbox_linux_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "content_unittests",
-                "browser_tests",
-                "content_browsertests",
-                "sync_integration_tests",
-                "nacl_integration"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjsBww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 85513,
-              "builder": "win_rel",
-              "clobber": true,
-              "completed": true,
-              "init_time": 1354248931.120074,
-              "parent_key": null,
-              "requested_steps": [
-                "chrome_frame_net_tests",
-                "chrome_frame_unittests",
-                "content_browsertests",
-                "installer_util_unittests",
-                "mini_installer_test",
-                "nacl_integration",
-                "sync_integration_tests"
-              ],
-              "revision": "HEAD",
-              "started": 1354243436,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "content_browsertests",
-                "installer_util_unittests",
-                "mini_installer_test",
-                "sync_integration_tests",
-                "chrome_frame_net_tests",
-                "chrome_frame_unittests",
-                "nacl_integration",
-                "process_dumps"
-              ],
-              "tries": 3
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjxLgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 10539,
-              "builder": "ios_dbg_simulator",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224029.279309,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216507,
-              "steps_failed": [
-                "compile"
-              ],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjyLgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 10544,
-              "builder": "ios_dbg_simulator",
-              "clobber": true,
-              "completed": true,
-              "init_time": 1354224029.13632,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354216934,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "base_unittests",
-                "crypto_unittests",
-                "googleurl_unittests",
-                "sql_unittests"
-              ],
-              "tries": 0
-            },
-            "android_dbg_triggered_tests/15307_triggered_ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiJJww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 15307,
-              "builder": "android_dbg_triggered_tests",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1354224029.327454,
-              "parent_key": "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYuNOxBQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiJJww",
-              "requested_steps": [],
-              "revision": "HEAD",
-              "started": 1354217400,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "cleanup_temp",
-                "build",
-                "Environment setup",
-                "Device Status Check",
-                "Download and extract build",
-                "Rebooting phones",
-                "base_unittests",
-                "cc_unittests",
-                "content_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "media_unittests",
-                "net_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "ui_unittests",
-                "unit_tests",
-                "webkit_compositor_bindings_unittests",
-                "Install ContentShell.apk",
-                "Run instrumentation tests ContentShellTest",
-                "Instrumentation tests: Smoke, SmallTest, MediumTest, LargeTest - ContentShellTest",
-                "Install ChromiumTestShell.apk",
-                "Run instrumentation tests ChromiumTestShellTest",
-                "Instrumentation tests: Smoke, SmallTest, MediumTest, LargeTest - ChromiumTestShellTest",
-                "Logcat dump"
-              ],
-              "tries": 0
-            }
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/tests/chromium.12208028.json b/tests/chromium.12208028.json
deleted file mode 100644
index ab348d1..0000000
--- a/tests/chromium.12208028.json
+++ /dev/null
@@ -1,953 +0,0 @@
-{
-  "__persistent_type__": "PendingQueue", 
-  "pending_commits": {
-    "12208028": {
-      "__persistent_type__": "PendingCommit", 
-      "base_url": "svn://svn.chromium.org/chrome/trunk/src", 
-      "description": "Exclude duplicate gmock_mutant functor templates in WIN64\n\nOn WIN64, there is only one calling convention.  Therefore,\nimplicit calling conventions and __stdcall are the same, hence\ntemplate redefinition errors occur in the previous gmock_mutant.h\non WIN64.\n\nBUG=173697, 166496\nTEST=media_unittests target builds without template redefinition errors.  With other build errors fixed in privates (ignore C4267 & lift MEDIA...INTRINSICS... definition into yuv_convert.h and use it to not link in methods that use MMX intrinsics), media_unittests executes\n", 
-      "files": [
-        "testing/generate_gmock_mutant.py", 
-        "testing/gmock_mutant.h"
-      ], 
-      "issue": 12208028, 
-      "messages": [
-        {
-          "approval": false, 
-          "date": "2013-02-07 02:03:59.852570", 
-          "disapproval": false, 
-          "recipients": [
-            "wolenetz@chromium.org", 
-            "dalecurtis@chromium.org", 
-            "chromium-reviews@chromium.org"
-          ], 
-          "sender": "commit-bot@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-02-05 21:38:46.793380", 
-          "disapproval": false, 
-          "recipients": [
-            "wolenetz@chromium.org", 
-            "stoyan@chromium.org", 
-            "dalecurtis@chromium.org", 
-            "chromium-reviews@chromium.org"
-          ], 
-          "sender": "wolenetz@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-02-05 21:03:00.049410", 
-          "disapproval": false, 
-          "recipients": [
-            "wolenetz@chromium.org", 
-            "stoyan@chromium.org", 
-            "dalecurtis@chromium.org", 
-            "chromium-reviews@chromium.org"
-          ], 
-          "sender": "wolenetz@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-02-06 18:44:41.797260", 
-          "disapproval": false, 
-          "recipients": [
-            "wolenetz@chromium.org", 
-            "dalecurtis@chromium.org", 
-            "chromium-reviews@chromium.org"
-          ], 
-          "sender": "wolenetz@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-02-07 00:05:38.370650", 
-          "disapproval": false, 
-          "recipients": [
-            "wolenetz@chromium.org", 
-            "dalecurtis@chromium.org", 
-            "chromium-reviews@chromium.org"
-          ], 
-          "sender": "wolenetz@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-02-05 21:07:38.316000", 
-          "disapproval": false, 
-          "recipients": [
-            "wolenetz@chromium.org", 
-            "stoyan@chromium.org", 
-            "dalecurtis@chromium.org", 
-            "chromium-reviews@chromium.org"
-          ], 
-          "sender": "dalecurtis@chromium.org"
-        }, 
-        {
-          "approval": true, 
-          "date": "2013-02-05 21:40:24.800270", 
-          "disapproval": false, 
-          "recipients": [
-            "wolenetz@chromium.org", 
-            "stoyan@chromium.org", 
-            "dalecurtis@chromium.org", 
-            "chromium-reviews@chromium.org"
-          ], 
-          "sender": "dalecurtis@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-02-06 18:45:19.341030", 
-          "disapproval": false, 
-          "recipients": [
-            "wolenetz@chromium.org", 
-            "dalecurtis@chromium.org", 
-            "chromium-reviews@chromium.org"
-          ], 
-          "sender": "commit-bot@chromium.org"
-        }
-      ], 
-      "owner": "wolenetz@chromium.org", 
-      "patchset": 1, 
-      "relpath": "", 
-      "reviewers": [
-        "dalecurtis@chromium.org"
-      ], 
-      "revision": 181323, 
-      "verifications": {
-        "presubmit": {
-          "__persistent_type__": "SimpleStatus", 
-          "error_message": null, 
-          "state": 0
-        }, 
-        "project_bases": {
-          "__persistent_type__": "SimpleStatus", 
-          "error_message": null, 
-          "state": 0
-        }, 
-        "reviewer_lgtm": {
-          "__persistent_type__": "LgtmStatus", 
-          "error_message": null, 
-          "state": 0
-        }, 
-        "tree status": {
-          "__persistent_type__": "TreeStatus", 
-          "error_message": null, 
-          "issue": 12208028, 
-          "last_tree_status": "", 
-          "tree_status_url": "http://chromium-status.appspot.com"
-        }, 
-        "try job rietveld": {
-          "__persistent_type__": "RietveldTryJobs", 
-          "error_message": null, 
-          "irrelevant": [
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY2Q8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY2w8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY3Q8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQYqUYM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY3g8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY0w8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY1w8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY2A8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY1A8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY1g8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY3A8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY2g8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY1Q8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY0g8M"
-          ], 
-          "pendings": [], 
-          "skipped": false, 
-          "step_verifiers": [
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_chromeos", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "aura_unittests", 
-                "chromeos_unittests", 
-                "components_unittests", 
-                "dbus_unittests", 
-                "device_unittests", 
-                "sandbox_linux_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "win", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "android_dbg", 
-              "steps": [
-                "build"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "mac", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_rel", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "nacl_integration", 
-                "remoting_unittests", 
-                "sandbox_linux_unittests", 
-                "sync_integration_tests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_aura", 
-              "steps": [
-                "aura_unittests", 
-                "compositor_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "interactive_ui_tests", 
-                "unit_tests", 
-                "views_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "win7_aura", 
-              "steps": [
-                "aura_unittests", 
-                "compositor_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "interactive_ui_tests", 
-                "unit_tests", 
-                "views_unittests", 
-                "ash_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "android_clang_dbg", 
-              "steps": [
-                "build"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "ios_dbg_simulator", 
-              "steps": [
-                "compile", 
-                "base_unittests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "googleurl_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "sql_unittests", 
-                "ui_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "ios_rel_device", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_clang", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "win_rel", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "chrome_frame_net_tests", 
-                "chrome_frame_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "installer_util_unittests", 
-                "mini_installer_test", 
-                "nacl_integration", 
-                "remoting_unittests", 
-                "sync_integration_tests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "mac_rel", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "nacl_integration", 
-                "remoting_unittests", 
-                "sync_integration_tests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobTriggeredSteps", 
-              "builder_name": "android_dbg_triggered_tests", 
-              "steps": {
-                "build": "build"
-              }, 
-              "trigger_name": "android_dbg"
-            }
-          ], 
-          "try_jobs": {
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQYBAw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 27594, 
-              "builder": "mac", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176382, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "update_clang", 
-                "cleanup_temp", 
-                "compile"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY-VUM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 33887, 
-              "builder": "android_dbg", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176349, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "cleanup_temp", 
-                "build", 
-                "trigger", 
-                "Environment setup", 
-                "compile", 
-                "findbugs", 
-                "Zip build"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY3TYM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 96633, 
-              "builder": "linux_rel", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176382, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "sandbox_linux_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_unittests", 
-                "browser_tests", 
-                "content_browsertests", 
-                "sync_integration_tests", 
-                "nacl_integration"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY3jYM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 96908, 
-              "builder": "mac_rel", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176383, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "update_clang", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_unittests", 
-                "browser_tests", 
-                "content_browsertests", 
-                "sync_integration_tests", 
-                "nacl_integration"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY4V0M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 8311, 
-              "builder": "win7_aura", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360179999, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "content_unittests", 
-                "process_dumps"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY6wcM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 81675, 
-              "builder": "linux_chromeos", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360180324, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "browser_tests"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY8y4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 48283, 
-              "builder": "win", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176384, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "process_dumps"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY9C4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 108936, 
-              "builder": "win_rel", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176384, 
-              "steps_failed": [
-                "interactive_ui_tests"
-              ], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_unittests", 
-                "browser_tests", 
-                "content_browsertests", 
-                "installer_util_unittests", 
-                "mini_installer_test", 
-                "sync_integration_tests", 
-                "chrome_frame_net_tests", 
-                "chrome_frame_unittests", 
-                "nacl_integration", 
-                "process_dumps"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQYkk4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 81631, 
-              "builder": "linux_chromeos", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176380, 
-              "steps_failed": [
-                "browser_tests"
-              ], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromeos_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "dbus_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "content_unittests", 
-                "device_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sandbox_linux_unittests", 
-                "aura_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_browsertests"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQYox8M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 17853, 
-              "builder": "android_clang_dbg", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176349, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "update_clang", 
-                "cleanup_temp", 
-                "build", 
-                "Environment setup", 
-                "compile"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQYpB8M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 24496, 
-              "builder": "ios_rel_device", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176377, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQYq0YM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 8281, 
-              "builder": "win7_aura", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176384, 
-              "steps_failed": [
-                "content_unittests"
-              ], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "interactive_ui_tests", 
-                "views_unittests", 
-                "aura_unittests", 
-                "ash_unittests", 
-                "compositor_unittests", 
-                "unit_tests", 
-                "content_browsertests", 
-                "process_dumps"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQYrEYM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 108973, 
-              "builder": "win_rel", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360180000, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "interactive_ui_tests", 
-                "process_dumps"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQYwj4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 25575, 
-              "builder": "ios_dbg_simulator", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176349, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "base_unittests", 
-                "crypto_unittests", 
-                "googleurl_unittests", 
-                "content_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ui_unittests", 
-                "sql_unittests"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQYwz4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 15073, 
-              "builder": "linux_aura", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176379, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "content_unittests", 
-                "views_unittests", 
-                "aura_unittests", 
-                "compositor_unittests", 
-                "unit_tests", 
-                "content_browsertests"
-              ], 
-              "tries": 0
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQYxD4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 81884, 
-              "builder": "linux_clang", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360176381, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "update_clang", 
-                "cleanup_temp", 
-                "compile"
-              ], 
-              "tries": 0
-            }, 
-            "android_dbg_triggered_tests/28973_triggered_ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY-VUM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 28973, 
-              "builder": "android_dbg_triggered_tests", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360256765.102551, 
-              "is_stewed": false, 
-              "parent_key": "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUYnI_pBQwLEghQYXRjaFNldBjxLgwLEgxUcnlKb2JSZXN1bHQY-VUM", 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360177384, 
-              "steps_failed": [
-                "build", 
-                "test_report"
-              ], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "cleanup_temp", 
-                "Environment setup", 
-                "Download and extract build", 
-                "Run tests", 
-                "Reboot devices", 
-                "device_status_check", 
-                "TestWebKitAPI", 
-                "android_webview_unittests", 
-                "base_unittests", 
-                "cc_unittests", 
-                "components_unittests", 
-                "content_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "media_unittests", 
-                "net_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "ui_unittests", 
-                "unit_tests", 
-                "webkit_compositor_bindings_unittests", 
-                "webkit_unit_tests", 
-                "androidwebview_instrumentation_tests", 
-                "chromiumtestshell_instrumentation_tests", 
-                "contentshell_instrumentation_tests", 
-                "logcat_dump"
-              ], 
-              "tries": 0
-            }
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/tests/chromium.12253015.json b/tests/chromium.12253015.json
deleted file mode 100755
index 733003e..0000000
--- a/tests/chromium.12253015.json
+++ /dev/null
@@ -1,1091 +0,0 @@
-{
-  "__persistent_type__": "PendingQueue", 
-  "pending_commits": {
-    "12253015": {
-      "__persistent_type__": "PendingCommit", 
-      "base_url": "svn://svn.chromium.org/chrome/trunk/src", 
-      "description": "Fix dependency on scoped_ptr::reset sequencing in IndexedDB code.\n\nscoped_ptr<T>::reset() currently guarantees that it deletes the old\nstored pointer before assigning its argument to the stored pointer.\nThis is unsafe, because getting the deleter may result in the\ndestruction of the scoped_ptr<T> itself. unique_ptr<T> addresses this by\nassigning its argument to the stored pointer before deleting the old\nvalue of the stored pointer.\n\nUnfortunately, this breaks code that assumes that the value of the\nscoped_ptr will not change during scoped_ptr::reset() before destruction\nof the old value is complete.\n\nBUG=176091\n", 
-      "files": [
-        "content/browser/in_process_webkit/indexed_db_dispatcher_host.cc", 
-        "content/browser/in_process_webkit/indexed_db_dispatcher_host.h"
-      ], 
-      "issue": 12253015, 
-      "messages": [
-        {
-          "approval": false, 
-          "date": "2013-02-14 00:10:57.524660", 
-          "disapproval": false, 
-          "recipients": [
-            "dcheng@chromium.org", 
-            "alecflett@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "jam@chromium.org", 
-            "darin-cc@chromium.org", 
-            "ajwong@chromium.org"
-          ], 
-          "sender": "commit-bot@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-02-13 22:40:22.541970", 
-          "disapproval": false, 
-          "recipients": [
-            "dcheng@chromium.org", 
-            "alecflett@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "jam@chromium.org", 
-            "darin-cc@chromium.org", 
-            "ajwong@chromium.org"
-          ], 
-          "sender": "dcheng@chromium.org"
-        }, 
-        {
-          "approval": true, 
-          "date": "2013-02-13 23:31:16.098120", 
-          "disapproval": false, 
-          "recipients": [
-            "dcheng@chromium.org", 
-            "alecflett@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "jam@chromium.org", 
-            "darin-cc@chromium.org", 
-            "ajwong@chromium.org"
-          ], 
-          "sender": "alecflett@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-02-13 23:51:36.277590", 
-          "disapproval": false, 
-          "recipients": [
-            "dcheng@chromium.org", 
-            "alecflett@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "jam@chromium.org", 
-            "darin-cc@chromium.org", 
-            "ajwong@chromium.org"
-          ], 
-          "sender": "commit-bot@chromium.org"
-        }
-      ], 
-      "owner": "dcheng@chromium.org", 
-      "patchset": 1, 
-      "relpath": "", 
-      "reviewers": [
-        "alecflett@chromium.org"
-      ], 
-      "revision": 182374, 
-      "verifications": {
-        "presubmit": {
-          "__persistent_type__": "SimpleStatus", 
-          "error_message": null, 
-          "state": 0
-        }, 
-        "project_bases": {
-          "__persistent_type__": "SimpleStatus", 
-          "error_message": null, 
-          "state": 0
-        }, 
-        "reviewer_lgtm": {
-          "__persistent_type__": "LgtmStatus", 
-          "error_message": null, 
-          "state": 0
-        }, 
-        "tree status": {
-          "__persistent_type__": "TreeStatus", 
-          "error_message": null, 
-          "issue": 12253015, 
-          "last_tree_status": "", 
-          "tree_status_url": "http://chromium-status.appspot.com"
-        }, 
-        "try job rietveld": {
-          "__persistent_type__": "RietveldTryJobs", 
-          "error_message": null, 
-          "irrelevant": [
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYwT4M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY0w8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYqUYM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY1Q8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYpB8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYsW0M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY1A8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYyWUM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY4l0M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYqkYM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY8i4M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYkU4M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY-lUM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY-1UM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYwz4M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY1g8M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYy2UM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYuxcM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYymUM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYq0YM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYwj4M", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYrEYM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY-VUM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYiicM", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY4V0M"
-          ], 
-          "pendings": [], 
-          "skipped": false, 
-          "step_verifiers": [
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_chromeos", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "aura_unittests", 
-                "chromeos_unittests", 
-                "components_unittests", 
-                "dbus_unittests", 
-                "device_unittests", 
-                "sandbox_linux_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "win", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "android_dbg", 
-              "steps": [
-                "build"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "mac", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_rel", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "nacl_integration", 
-                "remoting_unittests", 
-                "sandbox_linux_unittests", 
-                "sync_integration_tests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_aura", 
-              "steps": [
-                "aura_unittests", 
-                "browser_tests", 
-                "compositor_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "interactive_ui_tests", 
-                "unit_tests", 
-                "views_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "win7_aura", 
-              "steps": [
-                "aura_unittests", 
-                "browser_tests", 
-                "compositor_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "interactive_ui_tests", 
-                "unit_tests", 
-                "views_unittests", 
-                "ash_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "android_clang_dbg", 
-              "steps": [
-                "build"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "ios_dbg_simulator", 
-              "steps": [
-                "compile", 
-                "base_unittests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "googleurl_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "sql_unittests", 
-                "ui_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "ios_rel_device", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_clang", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "win_rel", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "chrome_frame_net_tests", 
-                "chrome_frame_tests", 
-                "chrome_frame_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "installer_util_unittests", 
-                "mini_installer_test", 
-                "nacl_integration", 
-                "remoting_unittests", 
-                "sync_integration_tests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "mac_rel", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "nacl_integration", 
-                "remoting_unittests", 
-                "sync_integration_tests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobTriggeredSteps", 
-              "builder_name": "android_dbg_triggered_tests", 
-              "steps": {
-                "build": "build"
-              }, 
-              "trigger_name": "android_dbg"
-            }
-          ], 
-          "try_jobs": {
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY1g8M_old": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 10475, 
-              "builder": "win7_aura", 
-              "clobber": false, 
-              "completed": false, 
-              "init_time": 1360826040.4839389, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "browser_tests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360825991, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler"
-              ], 
-              "tries": 2
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY2jYM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 10813, 
-              "builder": "win7_aura", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360864189.7725151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "ash_unittests", 
-                "aura_unittests", 
-                "compositor_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "interactive_ui_tests", 
-                "unit_tests", 
-                "views_unittests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360864082, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "interactive_ui_tests", 
-                "content_unittests", 
-                "views_unittests", 
-                "aura_unittests", 
-                "ash_unittests", 
-                "compositor_unittests", 
-                "unit_tests", 
-                "content_browsertests", 
-                "process_dumps"
-              ], 
-              "tries": 3
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY410M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 84539, 
-              "builder": "linux_chromeos", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "aura_unittests", 
-                "base_unittests", 
-                "browser_tests", 
-                "cacheinvalidation_unittests", 
-                "check_deps", 
-                "chromeos_unittests", 
-                "components_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "dbus_unittests", 
-                "device_unittests", 
-                "gpu_unittests", 
-                "interactive_ui_tests", 
-                "ipc_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sandbox_linux_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863115, 
-              "steps_failed": [
-                "browser_tests"
-              ], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromeos_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "dbus_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "content_unittests", 
-                "device_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sandbox_linux_unittests", 
-                "aura_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_browsertests"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY7AcM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 27626, 
-              "builder": "ios_dbg_simulator", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "base_unittests", 
-                "compile", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "googleurl_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "sql_unittests", 
-                "ui_unittests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863114, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "base_unittests", 
-                "crypto_unittests", 
-                "googleurl_unittests", 
-                "content_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ui_unittests", 
-                "sql_unittests"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY8y4M_old": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 111583, 
-              "builder": "win_rel", 
-              "clobber": true, 
-              "completed": false, 
-              "init_time": 1360809218.1383779, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "cacheinvalidation_unittests", 
-                "check_deps", 
-                "chrome_frame_net_tests", 
-                "chrome_frame_tests", 
-                "chrome_frame_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "installer_util_unittests", 
-                "interactive_ui_tests", 
-                "ipc_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "mini_installer_test", 
-                "nacl_integration", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "sql_unittests", 
-                "sync_integration_tests", 
-                "sync_unit_tests", 
-                "unit_tests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360809203, 
-              "steps_failed": [
-                "update_scripts"
-              ], 
-              "steps_passed": [
-                "svnkill", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_unittests"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY9C4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 17272, 
-              "builder": "linux_aura", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "aura_unittests", 
-                "browser_tests", 
-                "compositor_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "interactive_ui_tests", 
-                "unit_tests", 
-                "views_unittests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863114, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "content_unittests", 
-                "views_unittests", 
-                "aura_unittests", 
-                "compositor_unittests", 
-                "unit_tests", 
-                "browser_tests", 
-                "content_browsertests"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQY9S4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 84573, 
-              "builder": "linux_chromeos", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360867308.2716911, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "browser_tests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360867169, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "browser_tests"
-              ], 
-              "tries": 2
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYiycM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 84020, 
-              "builder": "linux_clang", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "compile"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863122, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "update_clang", 
-                "cleanup_temp", 
-                "compile"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYkk4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 36320, 
-              "builder": "android_dbg", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "build"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863112, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "cleanup_temp", 
-                "build", 
-                "trigger", 
-                "Environment setup", 
-                "Check licenses for WebView", 
-                "compile", 
-                "findbugs", 
-                "Zip build"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYrUYM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 28767, 
-              "builder": "mac", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "compile"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863125, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "update_clang", 
-                "cleanup_temp", 
-                "compile"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYsm0M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 49499, 
-              "builder": "win", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "compile"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863125, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "process_dumps"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYvBcM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 26517, 
-              "builder": "ios_rel_device", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "compile"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863114, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYxD4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 19962, 
-              "builder": "android_clang_dbg", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "build"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863111, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "update_clang", 
-                "cleanup_temp", 
-                "build", 
-                "Environment setup", 
-                "compile"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYxT4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 99083, 
-              "builder": "linux_rel", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "cacheinvalidation_unittests", 
-                "check_deps", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "interactive_ui_tests", 
-                "ipc_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "nacl_integration", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "sandbox_linux_unittests", 
-                "sql_unittests", 
-                "sync_integration_tests", 
-                "sync_unit_tests", 
-                "unit_tests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863125, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "sandbox_linux_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_unittests", 
-                "browser_tests", 
-                "content_browsertests", 
-                "sync_integration_tests", 
-                "nacl_integration"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYzGUM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 99713, 
-              "builder": "mac_rel", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360863146.4530151, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "cacheinvalidation_unittests", 
-                "check_deps", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "interactive_ui_tests", 
-                "ipc_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "nacl_integration", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "sql_unittests", 
-                "sync_integration_tests", 
-                "sync_unit_tests", 
-                "unit_tests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1360863126, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "update_clang", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_unittests", 
-                "browser_tests", 
-                "content_browsertests", 
-                "sync_integration_tests", 
-                "nacl_integration"
-              ], 
-              "tries": 1
-            }, 
-            "android_dbg_triggered_tests/30874_triggered_ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYqUYM": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 30874, 
-              "builder": "android_dbg_triggered_tests", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360809176.8618159, 
-              "is_stewed": false, 
-              "parent_key": "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYqUYM", 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360800523, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "cleanup_temp", 
-                "build", 
-                "Environment setup", 
-                "Download and extract build", 
-                "Run tests", 
-                "Reboot devices", 
-                "device_status_check", 
-                "TestWebKitAPI", 
-                "android_webview_unittests", 
-                "base_unittests", 
-                "cc_unittests", 
-                "components_unittests", 
-                "content_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "media_unittests", 
-                "net_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "ui_unittests", 
-                "unit_tests", 
-                "webkit_compositor_bindings_unittests", 
-                "webkit_unit_tests", 
-                "androidwebview_instrumentation_tests", 
-                "chromiumtestshell_instrumentation_tests", 
-                "contentshell_instrumentation_tests", 
-                "logcat_dump", 
-                "test_report"
-              ], 
-              "tries": 0
-            }, 
-            "android_dbg_triggered_tests/31069_triggered_ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYkk4M": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 31069, 
-              "builder": "android_dbg_triggered_tests", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1360865395.6493821, 
-              "is_stewed": false, 
-              "parent_key": "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIwCxIFSXNzdWUY1-7rBQwLEghQYXRjaFNldBjSDwwLEgxUcnlKb2JSZXN1bHQYkk4M", 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1360865454, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "cleanup_temp", 
-                "build", 
-                "Environment setup", 
-                "Download and extract build", 
-                "Run tests", 
-                "Reboot devices", 
-                "device_status_check", 
-                "TestWebKitAPI", 
-                "android_webview_unittests", 
-                "base_unittests", 
-                "cc_unittests", 
-                "components_unittests", 
-                "content_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "media_unittests", 
-                "net_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "ui_unittests", 
-                "unit_tests", 
-                "webkit_compositor_bindings_unittests", 
-                "webkit_unit_tests", 
-                "androidwebview_instrumentation_tests", 
-                "chromiumtestshell_instrumentation_tests", 
-                "contentshell_instrumentation_tests", 
-                "logcat_dump", 
-                "test_report"
-              ], 
-              "tries": 0
-            }
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/tests/chromium.12633013.json b/tests/chromium.12633013.json
deleted file mode 100755
index 9cbed39..0000000
--- a/tests/chromium.12633013.json
+++ /dev/null
@@ -1,1197 +0,0 @@
-{
-  "__persistent_type__": "PendingQueue", 
-  "pending_commits": {
-    "12633013": {
-      "__persistent_type__": "PendingCommit", 
-      "base_url": "svn://svn.chromium.org/chrome/trunk/src", 
-      "description": "Improve the v8::Object uniqueness check in V8ValueConverterImpl\n\nPreviously it used a set with identity hashes of the objects.\nThose are not necessarily unique, so now it also stores the handle (with the id hashes as keys), and checks the handle equality for objects with identical hashes.\n\n\nBUG=177662\n", 
-      "files": [
-        "content/renderer/v8_value_converter_impl.cc", 
-        "content/renderer/v8_value_converter_impl.h", 
-        "content/renderer/v8_value_converter_impl_unittest.cc"
-      ], 
-      "issue": 12633013, 
-      "messages": [
-        {
-          "approval": false, 
-          "date": "2013-03-14 14:24:19.801300", 
-          "disapproval": false, 
-          "recipients": [
-            "vabr@chromium.org", 
-            "eaugusti@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "darin-cc@chromium.org", 
-            "jam@chromium.org"
-          ], 
-          "sender": "vabr@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-03-14 18:29:21.200190", 
-          "disapproval": false, 
-          "recipients": [
-            "vabr@chromium.org", 
-            "eaugusti@chromium.org", 
-            "asargent@chromium.org", 
-            "svenpanne@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "darin-cc@chromium.org", 
-            "jam@chromium.org"
-          ], 
-          "sender": "vabr@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-03-14 17:21:09.585570", 
-          "disapproval": false, 
-          "recipients": [
-            "vabr@chromium.org", 
-            "eaugusti@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "darin-cc@chromium.org", 
-            "jam@chromium.org"
-          ], 
-          "sender": "eaugusti@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-03-14 18:19:35.532920", 
-          "disapproval": false, 
-          "recipients": [
-            "vabr@chromium.org", 
-            "eaugusti@chromium.org", 
-            "asargent@chromium.org", 
-            "svenpanne@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "darin-cc@chromium.org", 
-            "jam@chromium.org"
-          ], 
-          "sender": "eaugusti@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-03-14 17:59:37.322420", 
-          "disapproval": false, 
-          "recipients": [
-            "vabr@chromium.org", 
-            "eaugusti@chromium.org", 
-            "asargent@chromium.org", 
-            "svenpanne@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "darin-cc@chromium.org", 
-            "jam@chromium.org"
-          ], 
-          "sender": "vabr@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-03-15 08:58:16.558770", 
-          "disapproval": false, 
-          "recipients": [
-            "vabr@chromium.org", 
-            "eaugusti@chromium.org", 
-            "asargent@chromium.org", 
-            "svenpanne@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "darin-cc@chromium.org", 
-            "jam@chromium.org"
-          ], 
-          "sender": "svenpanne@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-03-15 14:37:45.719170", 
-          "disapproval": false, 
-          "recipients": [
-            "vabr@chromium.org", 
-            "eaugusti@chromium.org", 
-            "asargent@chromium.org", 
-            "svenpanne@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "darin-cc@chromium.org", 
-            "jam@chromium.org"
-          ], 
-          "sender": "vabr@chromium.org"
-        }, 
-        {
-          "approval": true, 
-          "date": "2013-03-15 16:55:55.960590", 
-          "disapproval": false, 
-          "recipients": [
-            "vabr@chromium.org", 
-            "eaugusti@chromium.org", 
-            "asargent@chromium.org", 
-            "svenpanne@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "darin-cc@chromium.org", 
-            "jam@chromium.org"
-          ], 
-          "sender": "eaugusti@chromium.org"
-        }, 
-        {
-          "approval": false, 
-          "date": "2013-03-15 17:00:08.433720", 
-          "disapproval": false, 
-          "recipients": [
-            "vabr@chromium.org", 
-            "eaugusti@chromium.org", 
-            "asargent@chromium.org", 
-            "svenpanne@chromium.org", 
-            "jamesr@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "darin-cc@chromium.org", 
-            "jam@chromium.org"
-          ], 
-          "sender": "vabr@chromium.org"
-        }, 
-        {
-          "approval": true, 
-          "date": "2013-03-18 01:23:55.542360", 
-          "disapproval": false, 
-          "recipients": [
-            "vabr@chromium.org", 
-            "eaugusti@chromium.org", 
-            "asargent@chromium.org", 
-            "svenpanne@chromium.org", 
-            "jamesr@chromium.org", 
-            "chromium-reviews@chromium.org", 
-            "joi+watch-content@chromium.org", 
-            "darin-cc@chromium.org", 
-            "jam@chromium.org"
-          ], 
-          "sender": "jamesr@chromium.org"
-        }
-      ], 
-      "owner": "vabr@chromium.org", 
-      "patchset": 1, 
-      "relpath": "", 
-      "reviewers": [
-        "eaugusti@chromium.org", 
-        "asargent@chromium.org", 
-        "svenpanne@chromium.org", 
-        "jamesr@chromium.org"
-      ], 
-      "revision": 188696, 
-      "verifications": {
-        "presubmit": {
-          "__persistent_type__": "SimpleStatus", 
-          "error_message": null, 
-          "state": 0
-        }, 
-        "project_bases": {
-          "__persistent_type__": "SimpleStatus", 
-          "error_message": null, 
-          "state": 0
-        }, 
-        "reviewer_lgtm": {
-          "__persistent_type__": "LgtmStatus", 
-          "error_message": null, 
-          "state": 0
-        }, 
-        "tree status": {
-          "__persistent_type__": "TreeStatus", 
-          "error_message": null, 
-          "issue": 12633013, 
-          "last_tree_status": "", 
-          "tree_status_url": "http://chromium-status.appspot.com"
-        }, 
-        "try job rietveld": {
-          "__persistent_type__": "RietveldTryJobs", 
-          "error_message": null, 
-          "irrelevant": [
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNuMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GKnDAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNOMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNyMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNSMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNWMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNaMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIxCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GJp1DA", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNeMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNiMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GN2MAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNmMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GOCMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GN-MAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GN6MAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNqMAQw", 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNKMAQw"
-          ], 
-          "pendings": [], 
-          "skipped": false, 
-          "step_verifiers": [
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "win_x64_rel", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_chromeos", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "aura_unittests", 
-                "ash_unittests", 
-                "chromeos_unittests", 
-                "components_unittests", 
-                "dbus_unittests", 
-                "device_unittests", 
-                "sandbox_linux_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_chromeos_clang", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "win", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "android_dbg", 
-              "steps": [
-                "slave_steps"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "mac", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_rel", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "nacl_integration", 
-                "remoting_unittests", 
-                "sandbox_linux_unittests", 
-                "sync_integration_tests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_aura", 
-              "steps": [
-                "aura_unittests", 
-                "browser_tests", 
-                "compositor_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "interactive_ui_tests", 
-                "unit_tests", 
-                "views_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "win7_aura", 
-              "steps": [
-                "aura_unittests", 
-                "browser_tests", 
-                "compositor_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "interactive_ui_tests", 
-                "unit_tests", 
-                "views_unittests", 
-                "ash_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "android_clang_dbg", 
-              "steps": [
-                "slave_steps"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "ios_dbg_simulator", 
-              "steps": [
-                "compile", 
-                "base_unittests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "googleurl_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "sql_unittests", 
-                "ui_unittests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "ios_rel_device", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "linux_clang", 
-              "steps": [
-                "compile"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "win_rel", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "chrome_frame_net_tests", 
-                "chrome_frame_tests", 
-                "chrome_frame_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "installer_util_unittests", 
-                "mini_installer_test", 
-                "nacl_integration", 
-                "remoting_unittests", 
-                "sync_integration_tests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobSteps", 
-              "builder_name": "mac_rel", 
-              "steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "check_deps", 
-                "cacheinvalidation_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "interactive_ui_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "nacl_integration", 
-                "remoting_unittests", 
-                "sync_integration_tests"
-              ]
-            }, 
-            {
-              "__persistent_type__": "TryJobTriggeredSteps", 
-              "builder_name": "android_dbg_triggered_tests", 
-              "steps": {
-                "slave_steps": "slave_steps"
-              }, 
-              "trigger_name": "android_dbg"
-            }
-          ], 
-          "try_jobs": {
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIxCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GOsHDA": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 20733, 
-              "builder": "win7_aura", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "ash_unittests", 
-                "aura_unittests", 
-                "browser_tests", 
-                "compositor_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "interactive_ui_tests", 
-                "unit_tests", 
-                "views_unittests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595731, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "interactive_ui_tests", 
-                "content_unittests", 
-                "views_unittests", 
-                "aura_unittests", 
-                "ash_unittests", 
-                "compositor_unittests", 
-                "unit_tests", 
-                "browser_tests", 
-                "content_browsertests", 
-                "process_dumps"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GIH6AQw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 35676, 
-              "builder": "ios_dbg_simulator", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "base_unittests", 
-                "compile", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "googleurl_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "sql_unittests", 
-                "ui_unittests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595722, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "base_unittests", 
-                "crypto_unittests", 
-                "googleurl_unittests", 
-                "content_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ui_unittests", 
-                "sql_unittests"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GImhAgw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 108404, 
-              "builder": "linux_rel", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "cacheinvalidation_unittests", 
-                "check_deps", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "interactive_ui_tests", 
-                "ipc_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "nacl_integration", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "sandbox_linux_unittests", 
-                "sql_unittests", 
-                "sync_integration_tests", 
-                "sync_unit_tests", 
-                "unit_tests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595730, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "sandbox_linux_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_unittests", 
-                "browser_tests", 
-                "content_browsertests", 
-                "sync_integration_tests", 
-                "nacl_integration"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GIqhAgw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 3482, 
-              "builder": "win_x64_rel", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "compile"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595730, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "process_dumps"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GJnyAQw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 45419, 
-              "builder": "android_dbg", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "slave_steps"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595722, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "cleanup_temp", 
-                "slave_steps", 
-                "trigger", 
-                "Environment setup", 
-                "Check licenses for WebView", 
-                "compile", 
-                "findbugs", 
-                "Zip build"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GJryAQw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 16028, 
-              "builder": "linux_chromeos_clang", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "compile"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595729, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "update_clang", 
-                "cleanup_temp", 
-                "compile"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GJvyAQw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 109927, 
-              "builder": "mac_rel", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "cacheinvalidation_unittests", 
-                "check_deps", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "interactive_ui_tests", 
-                "ipc_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "nacl_integration", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "sql_unittests", 
-                "sync_integration_tests", 
-                "sync_unit_tests", 
-                "unit_tests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595730, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "update_clang", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_unittests", 
-                "browser_tests", 
-                "content_browsertests", 
-                "sync_integration_tests", 
-                "nacl_integration"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GKGZAgw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 92062, 
-              "builder": "linux_clang", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "compile"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595730, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "update_clang", 
-                "cleanup_temp", 
-                "compile"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GLHqAQw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 28024, 
-              "builder": "android_clang_dbg", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "slave_steps"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595722, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "update_clang", 
-                "cleanup_temp", 
-                "slave_steps", 
-                "Environment setup", 
-                "compile"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GLmRAgw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 94239, 
-              "builder": "linux_chromeos", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "ash_unittests", 
-                "aura_unittests", 
-                "base_unittests", 
-                "browser_tests", 
-                "cacheinvalidation_unittests", 
-                "check_deps", 
-                "chromeos_unittests", 
-                "components_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "dbus_unittests", 
-                "device_unittests", 
-                "gpu_unittests", 
-                "interactive_ui_tests", 
-                "ipc_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sandbox_linux_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "unit_tests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595730, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromeos_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "dbus_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "content_unittests", 
-                "device_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "sandbox_linux_unittests", 
-                "aura_unittests", 
-                "ash_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "browser_tests", 
-                "content_browsertests"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GMriAQw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 36259, 
-              "builder": "mac", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "compile"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595730, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "update_clang", 
-                "cleanup_temp", 
-                "compile"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GMviAQw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 123715, 
-              "builder": "win_rel", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "base_unittests", 
-                "browser_tests", 
-                "cacheinvalidation_unittests", 
-                "check_deps", 
-                "chrome_frame_net_tests", 
-                "chrome_frame_tests", 
-                "chrome_frame_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "installer_util_unittests", 
-                "interactive_ui_tests", 
-                "ipc_tests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "mini_installer_test", 
-                "nacl_integration", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "sql_unittests", 
-                "sync_integration_tests", 
-                "sync_unit_tests", 
-                "unit_tests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595730, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "interactive_ui_tests", 
-                "check_deps", 
-                "base_unittests", 
-                "cacheinvalidation_unittests", 
-                "chromedriver_unittests", 
-                "components_unittests", 
-                "crypto_unittests", 
-                "gpu_unittests", 
-                "jingle_unittests", 
-                "media_unittests", 
-                "net_unittests", 
-                "ppapi_unittests", 
-                "printing_unittests", 
-                "remoting_unittests", 
-                "ipc_tests", 
-                "sync_unit_tests", 
-                "unit_tests", 
-                "sql_unittests", 
-                "content_unittests", 
-                "browser_tests", 
-                "content_browsertests", 
-                "installer_util_unittests", 
-                "mini_installer_test", 
-                "sync_integration_tests", 
-                "chrome_frame_net_tests", 
-                "chrome_frame_unittests", 
-                "chrome_frame_tests", 
-                "nacl_integration", 
-                "process_dumps"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNGJAgw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 25112, 
-              "builder": "linux_aura", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "aura_unittests", 
-                "browser_tests", 
-                "compositor_unittests", 
-                "content_browsertests", 
-                "content_unittests", 
-                "interactive_ui_tests", 
-                "unit_tests", 
-                "views_unittests"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595729, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "interactive_ui_tests", 
-                "content_unittests", 
-                "views_unittests", 
-                "aura_unittests", 
-                "compositor_unittests", 
-                "unit_tests", 
-                "browser_tests", 
-                "content_browsertests"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNKJAgw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 57236, 
-              "builder": "win", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "compile"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595730, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "svnkill", 
-                "update_scripts", 
-                "taskkill", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile", 
-                "start_crash_handler", 
-                "process_dumps"
-              ], 
-              "tries": 1
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GNmwAgw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 45426, 
-              "builder": "android_dbg", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363599007.1860321, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "slave_steps"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363598970, 
-              "steps_failed": [
-                "slave_steps", 
-                "findbugs"
-              ], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "cleanup_temp", 
-                "Environment setup", 
-                "Check licenses for WebView", 
-                "compile", 
-                "Zip build"
-              ], 
-              "tries": 2
-            }, 
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GOmBAgw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 34321, 
-              "builder": "ios_rel_device", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363595745.427537, 
-              "is_stewed": false, 
-              "parent_key": null, 
-              "requested_steps": [
-                "compile"
-              ], 
-              "revision": "HEAD", 
-              "started": 1363595722, 
-              "steps_failed": [], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "runhooks", 
-                "cleanup_temp", 
-                "compile"
-              ], 
-              "tries": 1
-            }, 
-            "android_dbg_triggered_tests/38700_triggered_ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GJnyAQw": {
-              "__persistent_type__": "RietveldTryJob", 
-              "build": 38700, 
-              "builder": "android_dbg_triggered_tests", 
-              "clobber": false, 
-              "completed": true, 
-              "init_time": 1363596552.4653699, 
-              "is_stewed": false, 
-              "parent_key": "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIyCxIFSXNzdWUYtYeDBgwLEghQYXRjaFNldBi5lAEMCxIMVHJ5Sm9iUmVzdWx0GJnyAQw", 
-              "requested_steps": [], 
-              "revision": "HEAD", 
-              "started": 1363596645, 
-              "steps_failed": [
-                "slave_steps", 
-                "webkit_unit_tests"
-              ], 
-              "steps_passed": [
-                "update_scripts", 
-                "update", 
-                "apply_issue", 
-                "cleanup_temp", 
-                "Environment setup", 
-                "Download and extract build", 
-                "Run tests", 
-                "Environment setup", 
-                "Reboot devices", 
-                "device_status_check", 
-                "TestWebKitAPI", 
-                "android_webview_unittests", 
-                "base_unittests", 
-                "cc_unittests", 
-                "components_unittests", 
-                "content_unittests", 
-                "gpu_unittests", 
-                "ipc_tests", 
-                "media_unittests", 
-                "net_unittests", 
-                "sql_unittests", 
-                "sync_unit_tests", 
-                "ui_unittests", 
-                "unit_tests", 
-                "webkit_compositor_bindings_unittests", 
-                "androidwebview_instrumentation_tests", 
-                "chromiumtestshell_instrumentation_tests", 
-                "contentshell_instrumentation_tests", 
-                "logcat_dump", 
-                "test_report"
-              ], 
-              "tries": 0
-            }
-          }
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/tests/chromium.31337.json b/tests/chromium.31337.json
deleted file mode 100644
index 5fcf0aa..0000000
--- a/tests/chromium.31337.json
+++ /dev/null
@@ -1,1063 +0,0 @@
-{
-  "__persistent_type__": "PendingQueue",
-  "pending_commits": {
-    "31337": {
-      "__persistent_type__": "PendingCommit",
-      "base_url": "svn://svn.chromium.org/chrome/trunk/src",
-      "description": "Remove compositor_test_support\n\nIt is not needed anymore after https://codereview.chromium.org/11415089/\n\nBUG=159278\n",
-      "files": [
-        "ash/ash.gyp",
-        "ash/shell/content_client/shell_browser_main_parts.cc",
-        "ash/test/test_suite.cc",
-        "chrome/chrome_tests_unit.gypi",
-        "chrome/test/base/view_event_test_base.cc",
-        "ui/app_list/app_list.gyp",
-        "ui/app_list/test/app_list_test_suite.cc",
-        "ui/aura/aura.gyp",
-        "ui/aura/bench/bench_main.cc",
-        "ui/aura/demo/demo_main.cc",
-        "ui/aura/test/test_suite.cc",
-        "ui/compositor/compositor.gyp",
-        "ui/compositor/test/test_suite.cc",
-        "ui/views/run_all_unittests.cc",
-        "ui/views/views.gyp",
-        "webkit/gpu/webkit_gpu.gypi",
-        "ui/compositor/test/compositor_test_support.cc",
-        "ui/compositor/test/compositor_test_support.h"
-      ],
-      "issue": 31337,
-      "messages": [
-        {
-          "approval": true,
-          "date": "2012-11-26 23:09:14.950530",
-          "disapproval": false,
-          "recipients": [
-            "piman@chromium.org",
-            "ben@chromium.org",
-            "chromium-reviews@chromium.org",
-            "sadrul@chromium.org",
-            "backer@chromium.org",
-            "vollick@chromium.org",
-            "tfarina@chromium.org",
-            "ben+watch@chromium.org",
-            "apatrick@chromium.org",
-            "darin-cc@chromium.org",
-            "piman+watch@chromium.org",
-            "cc-bugs@chromium.org"
-          ],
-          "sender": "ben@chromium.org"
-        },
-        {
-          "approval": false,
-          "date": "2012-11-26 22:16:25.886110",
-          "disapproval": false,
-          "recipients": [
-            "piman@chromium.org",
-            "ben@chromium.org",
-            "chromium-reviews@chromium.org",
-            "sadrul@chromium.org",
-            "backer@chromium.org",
-            "vollick@chromium.org",
-            "tfarina@chromium.org",
-            "ben+watch@chromium.org",
-            "apatrick@chromium.org",
-            "darin-cc@chromium.org",
-            "piman+watch@chromium.org",
-            "cc-bugs@chromium.org"
-          ],
-          "sender": "piman@chromium.org"
-        }
-      ],
-      "owner": "piman@chromium.org",
-      "patchset": 1,
-      "relpath": "",
-      "reviewers": [
-        "ben@chromium.org"
-      ],
-      "revision": 169538,
-      "verifications": {
-        "presubmit": {
-          "__persistent_type__": "SimpleStatus",
-          "error_message": null,
-          "state": 0
-        },
-        "project_bases": {
-          "__persistent_type__": "SimpleStatus",
-          "error_message": null,
-          "state": 0
-        },
-        "reviewer_lgtm": {
-          "__persistent_type__": "LgtmStatus",
-          "error_message": null,
-          "state": 0
-        },
-        "tree status": {
-          "__persistent_type__": "TreeStatus",
-          "error_message": null,
-          "issue": 0,
-          "tree_status_url": "http://chromium-status.appspot.com"
-        },
-        "try job rietveld": {
-          "__persistent_type__": "RietveldTryJobs",
-          "step_verifiers" : [
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "android_dbg",
-              "steps": ["build"]
-            },
-            {
-              "__persistent_type__": "TryJobTriggeredSteps",
-              "builder_name": "android_dbg_triggered_tests",
-              "trigger_name": "android_dbg",
-              "steps": {
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build"
-              }
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "ios_dbg_simulator",
-              "steps": [
-                "compile",
-                "base_unittests",
-                "crypto_unittests",
-                "googleurl_unittests",
-                "sql_unittests"
-              ]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "ios_rel_device",
-              "steps": ["compile"]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "linux_chromeos",
-              "steps": [
-                "base_unittests",
-                "browser_tests",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sandbox_linux_unittests"
-              ]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "linux_clang",
-              "steps": ["compile"]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "linux_rel",
-              "steps": [
-                "base_unittests",
-                "browser_tests",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "unit_tests",
-                "nacl_integration",
-                "remoting_unittests",
-                "sandbox_linux_unittests",
-                "sync_integration_tests"
-              ]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "mac",
-              "steps": ["compile"]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "mac_rel",
-              "steps": [
-                "base_unittests",
-                "browser_tests",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "unit_tests",
-                "nacl_integration",
-                "remoting_unittests",
-                "sync_integration_tests"
-              ]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "win",
-              "steps": ["compile"]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "win_rel",
-              "steps": [
-                "base_unittests",
-                "browser_tests",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "unit_tests",
-                "chrome_frame_net_tests",
-                "chrome_frame_unittests",
-                "installer_util_unittests",
-                "mini_installer_test",
-                "nacl_integration",
-                "remoting_unittests",
-                "sync_integration_tests"
-              ]
-            }
-          ],
-          "error_message": null,
-          "irrelevant": [
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjBPgw"
-          ],
-          "pendings": [],
-          "skipped": false,
-          "try_jobs": {
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiKJww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 38286,
-              "builder": "win",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353978189.597217,
-              "parent_key": null,
-              "requested_steps": [
-                "compile"
-              ],
-              "revision": "HEAD",
-              "started": 1353976103,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "process_dumps"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiiHww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 76339,
-              "builder": "mac_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353982979.267107,
-              "parent_key": null,
-              "requested_steps": [
-                "sync_integration_tests"
-              ],
-              "revision": "HEAD",
-              "started": 1353976234,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "sync_integration_tests"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjBPgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 83507,
-              "builder": "win_rel",
-              "clobber": false,
-              "completed": false,
-              "init_time": 1353978256.387578,
-              "parent_key": null,
-              "requested_steps": [
-                "sync_integration_tests"
-              ],
-              "revision": "HEAD",
-              "started": 1353976103,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjRDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 1703,
-              "builder": "linux_aura",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976067.587522,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965617,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "content_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "ui_unittests",
-                "views_unittests",
-                "aura_unittests",
-                "compositor_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "content_browsertests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjSDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 61429,
-              "builder": "linux_chromeos",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976067.150669,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965617,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "chromeos_unittests",
-                "crypto_unittests",
-                "dbus_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "content_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sandbox_linux_unittests",
-                "ui_unittests",
-                "views_unittests",
-                "aura_unittests",
-                "ash_unittests",
-                "compositor_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "browser_tests",
-                "content_browsertests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjTDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 2913,
-              "builder": "android_clang_dbg",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976068.445479,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965618,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "update_clang",
-                "cleanup_temp",
-                "build",
-                "Environment setup",
-                "compile"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjUDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 10314,
-              "builder": "linux_asan",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976067.377217,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965618,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "ui_unittests",
-                "content_unittests",
-                "content_browsertests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjVDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 8591,
-              "builder": "linux_chromeos_clang",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976068.66063,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965628,
-              "steps_failed": [
-                "compile"
-              ],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjWDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 5470,
-              "builder": "win_aura",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976067.79809,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965629,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "interactive_ui_tests",
-                "content_unittests",
-                "device_unittests",
-                "views_unittests",
-                "aura_unittests",
-                "ash_unittests",
-                "compositor_unittests",
-                "unit_tests",
-                "browser_tests",
-                "content_browsertests",
-                "process_dumps"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjXDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 83395,
-              "builder": "win_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976066.256027,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965631,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "cc_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "test_shell_tests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "ui_unittests",
-                "content_unittests",
-                "views_unittests",
-                "browser_tests",
-                "content_browsertests",
-                "installer_util_unittests",
-                "mini_installer_test",
-                "webkit_compositor_bindings_unittests",
-                "sizes",
-                "chrome_frame_net_tests",
-                "chrome_frame_unittests",
-                "chrome_frame_tests",
-                "nacl_integration",
-                "process_dumps"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjYDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 9542,
-              "builder": "ios_dbg_simulator",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976069.08479,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965632,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "base_unittests",
-                "crypto_unittests",
-                "sql_unittests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjZDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 9249,
-              "builder": "ios_rel_device",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976068.875008,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965632,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjZNgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 17840,
-              "builder": "mac",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353977599.814764,
-              "parent_key": null,
-              "requested_steps": [
-                "compile"
-              ],
-              "revision": "HEAD",
-              "started": 1353976749,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjaDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 17075,
-              "builder": "android_dbg",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976068.224824,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965633,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "cleanup_temp",
-                "build",
-                "trigger",
-                "Environment setup",
-                "compile",
-                "findbugs",
-                "Zip build"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjbDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 2605,
-              "builder": "linux_chromeos_asan",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353982979.269344,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353972562,
-              "steps_failed": [
-                "sandbox_linux_unittests"
-              ],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "chromeos_unittests",
-                "crypto_unittests",
-                "dbus_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "content_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "ui_unittests",
-                "views_unittests",
-                "aura_unittests",
-                "ash_unittests",
-                "compositor_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "browser_tests",
-                "content_browsertests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjcDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 66206,
-              "builder": "linux_clang",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976068.016905,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965633,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjdDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 10661,
-              "builder": "mac_asan",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976066.933554,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965636,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "cc_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "test_shell_tests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "ui_unittests",
-                "content_unittests",
-                "browser_tests",
-                "content_browsertests",
-                "webkit_compositor_bindings_unittests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjeDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 76261,
-              "builder": "mac_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976066.489474,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965637,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "cc_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "test_shell_tests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "ui_unittests",
-                "content_unittests",
-                "browser_tests",
-                "content_browsertests",
-                "webkit_compositor_bindings_unittests",
-                "sizes",
-                "nacl_integration"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjfDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 77827,
-              "builder": "linux_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976066.707563,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965637,
-              "steps_failed": [
-                "content_browsertests"
-              ],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "cc_unittests",
-                "crypto_unittests",
-                "dbus_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "test_shell_tests",
-                "sandbox_linux_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "ui_unittests",
-                "content_unittests",
-                "browser_tests",
-                "webkit_compositor_bindings_unittests",
-                "sizes",
-                "nacl_integration"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjgDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 77929,
-              "builder": "linux_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353977599.816735,
-              "parent_key": null,
-              "requested_steps": [
-                "content_browsertests",
-                "sync_integration_tests"
-              ],
-              "revision": "HEAD",
-              "started": 1353976102,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "content_browsertests",
-                "sync_integration_tests"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjxLgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 9616,
-              "builder": "ios_dbg_simulator",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353977599.824174,
-              "parent_key": null,
-              "requested_steps": [
-                "googleurl_unittests"
-              ],
-              "revision": "HEAD",
-              "started": 1353976102,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "googleurl_unittests"
-              ],
-              "tries": 1
-            },
-            "android_dbg_triggered_tests/14382_triggered_ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjaDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 14382,
-              "builder": "android_dbg_triggered_tests",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976069.296137,
-              "parent_key": "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjaDww",
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353966702,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "cleanup_temp",
-                "build",
-                "Environment setup",
-                "Device Status Check",
-                "Download and extract build",
-                "Rebooting phones",
-                "base_unittests",
-                "cc_unittests",
-                "content_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "media_unittests",
-                "net_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "ui_unittests",
-                "unit_tests",
-                "webkit_compositor_bindings_unittests",
-                "Install ContentShell.apk",
-                "Run instrumentation tests ContentShellTest",
-                "Instrumentation tests: Smoke, SmallTest, MediumTest, LargeTest - ContentShellTest",
-                "Install ChromiumTestShell.apk",
-                "Run instrumentation tests ChromiumTestShellTest",
-                "Instrumentation tests: Smoke, SmallTest, MediumTest, LargeTest - ChromiumTestShellTest",
-                "Logcat dump"
-              ],
-              "tries": 0
-            }
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/tests/chromium.666.json b/tests/chromium.666.json
deleted file mode 100644
index 210b1d5..0000000
--- a/tests/chromium.666.json
+++ /dev/null
@@ -1,1071 +0,0 @@
-{
-  "__persistent_type__": "PendingQueue",
-  "pending_commits": {
-    "666": {
-      "__persistent_type__": "PendingCommit",
-      "base_url": "svn://svn.chromium.org/chrome/trunk/src",
-      "description": "Test swarm tests in CQ\n",
-      "files": [
-        "swarm/fake_file.cc"
-      ],
-      "issue": 666,
-      "messages": [],
-      "owner": "swarm@chromium.org",
-      "patchset": 1,
-      "relpath": "",
-      "reviewers": [
-        "swarm-reviewer@chromium.org"
-      ],
-      "revision": 169538,
-      "verifications": {
-        "presubmit": {
-          "__persistent_type__": "SimpleStatus",
-          "error_message": null,
-          "state": 0
-        },
-        "project_bases": {
-          "__persistent_type__": "SimpleStatus",
-          "error_message": null,
-          "state": 0
-        },
-        "reviewer_lgtm": {
-          "__persistent_type__": "LgtmStatus",
-          "error_message": null,
-          "state": 0
-        },
-        "tree status": {
-          "__persistent_type__": "TreeStatus",
-          "error_message": null,
-          "issue": 0,
-          "tree_status_url": "http://chromium-status.appspot.com"
-        },
-        "try job rietveld": {
-          "__persistent_type__": "RietveldTryJobs",
-          "step_verifiers" : [
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "android_dbg",
-              "steps": ["build"]
-            },
-            {
-              "__persistent_type__": "TryJobTriggeredSteps",
-              "builder_name": "android_dbg_triggered_tests",
-              "trigger_name": "android_dbg",
-              "steps": {
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build",
-                "build": "build"
-              }
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "ios_dbg_simulator",
-              "steps": [
-                "compile",
-                "base_unittests",
-                "crypto_unittests",
-                "googleurl_unittests",
-                "sql_unittests"
-              ]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "ios_rel_device",
-              "steps": ["compile"]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "linux_chromeos",
-              "steps": [
-                "base_unittests",
-                "browser_tests",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sandbox_linux_unittests"
-              ]
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "linux_clang",
-              "steps": ["compile"]
-            },
-            {
-              "__persistent_type__": "TryJobTriggeredOrNormalSteps",
-              "builder_name": "swarm_triggered",
-	      "trigger_name": "linux_rel",
-	      "steps": {
-	        "base_unittests": "base_unittests_swarm",
-	        "browser_tests": "browser_tests_swarm",
-	        "net_unittests": "net_unittests_swarm",
-	        "unit_tests": "unit_tests_swarm"
-	      },
-              "trigger_bot_steps": [
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "nacl_integration",
-                "remoting_unittests",
-                "sandbox_linux_unittests",
-                "sync_integration_tests"
-              ],
-              "use_triggered_bot": false
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "mac",
-              "steps": ["compile"]
-            },
-            {
-              "__persistent_type__": "TryJobTriggeredOrNormalSteps",
-              "builder_name": "swarm_triggered",
-	      "trigger_name": "mac_rel",
-	      "steps": {
-	        "base_unittests": "base_unittests_swarm",
-	        "browser_tests": "browser_tests_swarm",
-	        "net_unittests": "net_unittests_swarm",
-	        "unit_tests": "unit_tests_swarm"
-	      },
-              "trigger_bot_steps": [
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "nacl_integration",
-                "remoting_unittests",
-                "sync_integration_tests"
-              ],
-              "use_triggered_bot": false
-            },
-            {
-              "__persistent_type__": "TryJobSteps",
-              "builder_name": "win",
-              "steps": ["compile"]
-            },
-            {
-              "__persistent_type__": "TryJobTriggeredOrNormalSteps",
-              "builder_name": "swarm_triggered",
-	      "trigger_name": "win_rel",
-	      "steps": {
-	        "base_unittests": "base_unittests_swarm",
-	        "browser_tests": "browser_tests_swarm",
-	        "net_unittests": "net_unittests_swarm",
-	        "unit_tests": "unit_tests_swarm"
-	      },
-              "trigger_bot_steps": [
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "content_browsertests",
-                "content_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "interactive_ui_tests",
-                "jingle_unittests",
-                "media_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "chrome_frame_net_tests",
-                "chrome_frame_unittests",
-                "installer_util_unittests",
-                "mini_installer_test",
-                "nacl_integration",
-                "remoting_unittests",
-                "sync_integration_tests"
-              ],
-              "use_triggered_bot": false
-            }
-          ],
-          "error_message": null,
-          "irrelevant": [
-          ],
-          "pendings": [],
-          "skipped": false,
-          "try_jobs": {
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiKJww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 38286,
-              "builder": "win",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353978189.597217,
-              "parent_key": null,
-              "requested_steps": [
-                "compile"
-              ],
-              "revision": "HEAD",
-              "started": 1353976103,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "process_dumps"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBiiHww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 76339,
-              "builder": "mac_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353982979.267107,
-              "parent_key": null,
-              "requested_steps": [
-                "sync_integration_tests"
-              ],
-              "revision": "HEAD",
-              "started": 1353976234,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "sync_integration_tests"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjBPgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 83507,
-              "builder": "win_rel",
-              "clobber": false,
-              "completed": false,
-              "init_time": 1353978256.387578,
-              "parent_key": null,
-              "requested_steps": [
-                "sync_integration_tests"
-              ],
-              "revision": "HEAD",
-              "started": 1353976103,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "sync_integration_tests"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjRDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 1703,
-              "builder": "linux_aura",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976067.587522,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965617,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "content_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "ui_unittests",
-                "views_unittests",
-                "aura_unittests",
-                "compositor_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "content_browsertests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjSDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 61429,
-              "builder": "linux_chromeos",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976067.150669,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965617,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "chromeos_unittests",
-                "crypto_unittests",
-                "dbus_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "content_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "sandbox_linux_unittests",
-                "ui_unittests",
-                "views_unittests",
-                "aura_unittests",
-                "ash_unittests",
-                "compositor_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "browser_tests",
-                "content_browsertests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjTDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 2913,
-              "builder": "android_clang_dbg",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976068.445479,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965618,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "update_clang",
-                "cleanup_temp",
-                "build",
-                "Environment setup",
-                "compile"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjUDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 10314,
-              "builder": "linux_asan",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976067.377217,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965618,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "ui_unittests",
-                "content_unittests",
-                "content_browsertests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjVDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 8591,
-              "builder": "linux_chromeos_clang",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976068.66063,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965628,
-              "steps_failed": [
-                "compile"
-              ],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjWDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 5470,
-              "builder": "win_aura",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976067.79809,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965629,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "interactive_ui_tests",
-                "content_unittests",
-                "device_unittests",
-                "views_unittests",
-                "aura_unittests",
-                "ash_unittests",
-                "compositor_unittests",
-                "unit_tests",
-                "browser_tests",
-                "content_browsertests",
-                "process_dumps"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjXDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 83395,
-              "builder": "win_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976066.256027,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965631,
-              "steps_failed": [],
-              "steps_passed": [
-                "svnkill",
-                "update_scripts",
-                "taskkill",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "start_crash_handler",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "cc_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "device_unittests",
-                "media_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "test_shell_tests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "sql_unittests",
-                "ui_unittests",
-                "content_unittests",
-                "views_unittests",
-                "content_browsertests",
-                "installer_util_unittests",
-                "mini_installer_test",
-                "webkit_compositor_bindings_unittests",
-                "sizes",
-                "chrome_frame_net_tests",
-                "chrome_frame_unittests",
-                "chrome_frame_tests",
-                "nacl_integration",
-                "process_dumps"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjYDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 9542,
-              "builder": "ios_dbg_simulator",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976069.08479,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965632,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "base_unittests",
-                "crypto_unittests",
-                "sql_unittests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjZDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 9249,
-              "builder": "ios_rel_device",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976068.875008,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965632,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjZNgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 17840,
-              "builder": "mac",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353977599.814764,
-              "parent_key": null,
-              "requested_steps": [
-                "compile"
-              ],
-              "revision": "HEAD",
-              "started": 1353976749,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjaDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 17075,
-              "builder": "android_dbg",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976068.224824,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965633,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "cleanup_temp",
-                "build",
-                "trigger",
-                "Environment setup",
-                "compile",
-                "findbugs",
-                "Zip build"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjbDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 2605,
-              "builder": "linux_chromeos_asan",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353982979.269344,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353972562,
-              "steps_failed": [
-                "sandbox_linux_unittests"
-              ],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "chromeos_unittests",
-                "crypto_unittests",
-                "dbus_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "content_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "ui_unittests",
-                "views_unittests",
-                "aura_unittests",
-                "ash_unittests",
-                "compositor_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "browser_tests",
-                "content_browsertests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjcDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 66206,
-              "builder": "linux_clang",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976068.016905,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965633,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjdDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 10661,
-              "builder": "mac_asan",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976066.933554,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965636,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "base_unittests",
-                "cacheinvalidation_unittests",
-                "cc_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "device_unittests",
-                "media_unittests",
-                "net_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "test_shell_tests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "unit_tests",
-                "sql_unittests",
-                "ui_unittests",
-                "content_unittests",
-                "browser_tests",
-                "content_browsertests",
-                "webkit_compositor_bindings_unittests"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjeDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 76261,
-              "builder": "mac_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976066.489474,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965637,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "update_clang",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "cc_unittests",
-                "crypto_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "device_unittests",
-                "media_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "test_shell_tests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "sql_unittests",
-                "ui_unittests",
-                "content_unittests",
-                "content_browsertests",
-                "webkit_compositor_bindings_unittests",
-                "sizes",
-                "nacl_integration"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjfDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 77827,
-              "builder": "linux_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976066.707563,
-              "parent_key": null,
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965637,
-              "steps_failed": [
-                "content_browsertests"
-              ],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "interactive_ui_tests",
-                "check_deps2git",
-                "check_deps2submodules",
-                "check_deps",
-                "cacheinvalidation_unittests",
-                "cc_unittests",
-                "crypto_unittests",
-                "dbus_unittests",
-                "gpu_unittests",
-                "jingle_unittests",
-                "device_unittests",
-                "media_unittests",
-                "ppapi_unittests",
-                "printing_unittests",
-                "remoting_unittests",
-                "test_shell_tests",
-                "sandbox_linux_unittests",
-                "ipc_tests",
-                "sync_unit_tests",
-                "sql_unittests",
-                "ui_unittests",
-                "content_unittests",
-                "webkit_compositor_bindings_unittests",
-                "sizes",
-                "nacl_integration"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjgDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 77929,
-              "builder": "linux_rel",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353977599.816735,
-              "parent_key": null,
-              "requested_steps": [
-                "content_browsertests",
-                "sync_integration_tests"
-              ],
-              "revision": "HEAD",
-              "started": 1353976102,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "content_browsertests",
-                "sync_integration_tests"
-              ],
-              "tries": 1
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjxLgw": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 9616,
-              "builder": "ios_dbg_simulator",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353977599.824174,
-              "parent_key": null,
-              "requested_steps": [
-                "googleurl_unittests"
-              ],
-              "revision": "HEAD",
-              "started": 1353976102,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "runhooks",
-                "cleanup_temp",
-                "compile",
-                "googleurl_unittests"
-              ],
-              "tries": 1
-            },
-            "android_dbg_triggered_tests/14382_triggered_ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjaDww": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 14382,
-              "builder": "android_dbg_triggered_tests",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976069.296137,
-              "parent_key": "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjaDww",
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353966702,
-              "steps_failed": [],
-              "steps_passed": [
-                "update_scripts",
-                "update",
-                "apply_issue",
-                "cleanup_temp",
-                "build",
-                "Environment setup",
-                "Device Status Check",
-                "Download and extract build",
-                "Rebooting phones",
-                "base_unittests",
-                "cc_unittests",
-                "content_unittests",
-                "gpu_unittests",
-                "ipc_tests",
-                "media_unittests",
-                "net_unittests",
-                "sql_unittests",
-                "sync_unit_tests",
-                "ui_unittests",
-                "unit_tests",
-                "webkit_compositor_bindings_unittests",
-                "Install ContentShell.apk",
-                "Run instrumentation tests ContentShellTest",
-                "Instrumentation tests: Smoke, SmallTest, MediumTest, LargeTest - ContentShellTest",
-                "Install ChromiumTestShell.apk",
-                "Run instrumentation tests ChromiumTestShellTest",
-                "Instrumentation tests: Smoke, SmallTest, MediumTest, LargeTest - ChromiumTestShellTest",
-                "Logcat dump"
-              ],
-              "tries": 0
-            },
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjeDw7": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 83395,
-              "builder": "swarm_triggered",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976076.707563,
-              "parent_key": "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjeDww",
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965631,
-              "steps_failed": [
- 	        "browser_tests"
-	      ],
-              "steps_passed": [
-	        "swarm_trigger_tests",
-		"base_unittests",
-		"net_unittests",
-		"unit_tests"
-              ],
-              "tries": 0
-            }, 
-           "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjXDw7": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 83395,
-              "builder": "swarm_triggered",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976076.256027,
-              "parent_key": "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjXDww",
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965631,
-              "steps_failed": [
- 	        "browser_tests"
-	      ],
-              "steps_passed": [
-	        "swarm_trigger_tests",
-		"base_unittests",
-		"net_unittests",
-		"unit_tests"
-              ],
-              "tries": 0
-            },     
-            "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjfDw7": {
-              "__persistent_type__": "RietveldTryJob",
-              "build": 83395,
-              "builder": "swarm_triggered",
-              "clobber": false,
-              "completed": true,
-              "init_time": 1353976076.707563,
-              "parent_key": "ahdzfmNocm9taXVtY29kZXJldmlldy1ocnIvCxIFSXNzdWUYnvy4BQwLEghQYXRjaFNldBgBDAsSDFRyeUpvYlJlc3VsdBjfDww",
-              "requested_steps": [],
-              "revision": "169445",
-              "started": 1353965631,
-              "steps_failed": [
- 	        "browser_tests"
-	      ],
-              "steps_passed": [
-	        "swarm_trigger_tests",
-		"base_unittests",
-		"net_unittests",
-		"unit_tests"
-              ],
-              "tries": 0
-            }
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/tests/chromium_copyright_test.py b/tests/chromium_copyright_test.py
deleted file mode 100755
index 07bb158..0000000
--- a/tests/chromium_copyright_test.py
+++ /dev/null
@@ -1,135 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Unit tests for post_processors/chromium_copyright.py."""
-
-import datetime
-import os
-import sys
-import unittest
-
-ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
-PROJECT_DIR = os.path.join(ROOT_DIR, '..')
-sys.path.insert(0, PROJECT_DIR)
-
-import find_depot_tools  # pylint: disable=W0611
-from testing_support import trial_dir
-import patch
-
-from post_processors import chromium_copyright
-
-
-GIT_NEW = (
-    'diff --git a/foo b/foo\n'
-    'new file mode 100644\n'
-    'index 0000000..5716ca5\n'
-    '--- /dev/null\n'
-    '+++ b/foo\n'
-    '@@ -0,0 +1 @@\n'
-    '+bar\n')
-
-GIT_PATCH = (
-    'diff --git a/foo3 b/foo3\n'
-    'index 257cc56..5716ca5\n'
-    '--- a/foo3\n'
-    '+++ b/foo3\n'
-    '@@ -1 +1 @@\n'
-    '-foo\n'
-    '+bar\n')
-
-class CCTest(trial_dir.TestCase):
-  def setUp(self):
-    super(CCTest, self).setUp()
-    class FakeCheckout(object):
-      project_path = self.root_dir
-    self.checkout = FakeCheckout()
-    open(self.path('foo1'), 'w').write('bar')
-
-  @staticmethod
-  def get_patch():
-    return patch.PatchSet([
-        patch.FilePatchDelete('foo2', True),
-        patch.FilePatchDiff('foo', GIT_NEW, []),
-        patch.FilePatchBinary('foo1', 'data', [], True),
-        patch.FilePatchDiff('foo3', GIT_PATCH, []),
-    ])
-
-  def path(self, base_file):
-    return os.path.join(self.root_dir, base_file)
-
-  def full_check(self, content, expected):
-    """End-to-end test. That's all that matters."""
-    foo_path = self.path('foo')
-    foo3_path = self.path('foo3')
-    open(foo_path, 'w').write(content)
-    open(foo3_path, 'w').write(content)
-    for p in self.get_patch():
-      chromium_copyright.process(self.checkout, p)
-    self.assertEquals(expected, open(foo_path).read())
-    self.assertEquals(content, open(foo3_path).read())
-
-  def test_2_times(self):
-    content = (
-        'Copyright (c) 2010 The Chromium Authors. All rights reserved.\n'
-        'Copyright (c) 2010 The Chromium Authors. All rights reserved.\n')
-    expected = (
-        'Copyright %s The Chromium Authors. All rights reserved.\n'
-        'Copyright (c) 2010 The Chromium Authors. All rights reserved.\n') % (
-            datetime.date.today().year)
-    self.full_check(content, expected)
-
-  def test_5_lines(self):
-    content = (
-        '0\n'
-        '1\n'
-        '2\n'
-        '3\n'
-        'Copyright (c) 2010 The Chromium Authors. All rights reserved.\n')
-    expected = (
-        '0\n'
-        '1\n'
-        '2\n'
-        '3\n'
-        'Copyright %s The Chromium Authors. All rights reserved.\n') % (
-            datetime.date.today().year)
-    self.full_check(content, expected)
-
-  def test_6_lines(self):
-    content = (
-        '0\n'
-        '1\n'
-        '2\n'
-        '3\n'
-        '4\n'
-        'Copyright (c) 2010 The Chromium Authors. All rights reserved.\n')
-    expected = content
-    self.full_check(content, expected)
-
-  def test_re(self):
-    input_base = 'Copyright (c) 2010 The Chromium Authors. All rights reserved.'
-    input_no_copyright = ('Copyright 2010 The Chromium Authors. '
-                          'All rights reserved.')
-    expected_base = ('Copyright %s The Chromium Authors. All rights reserved.' %
-        datetime.date.today().year)
-    self.full_check(input_base, expected_base)
-    self.full_check('a ' + input_base, 'a ' + expected_base)
-    self.full_check('// ' + input_base, '// ' + expected_base)
-    self.full_check('// ' + input_base + '\n', '// ' + expected_base + '\n')
-    self.full_check(input_base + '\n', expected_base + '\n')
-    self.full_check(input_no_copyright, expected_base)
-    self.full_check('a ' + input_no_copyright, 'a ' + expected_base)
-    self.full_check('// ' + input_no_copyright, '// ' + expected_base)
-    self.full_check('// ' + input_no_copyright + '\n', '// ' + expected_base +
-                    '\n')
-    self.full_check(input_no_copyright + '\n', expected_base + '\n')
-    ## \r are not supported.
-    #self.full_check(
-    #    '// Copyright (c) 2010 The Chromium Authors. All rights reserved.\r\n',
-    #    '// Copyright %s The Chromium Authors. All rights reserved.\r\n' %
-    #        datetime.date.today().year)
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/tests/commit_queue_test.py b/tests/commit_queue_test.py
deleted file mode 100755
index d9c5ecc..0000000
--- a/tests/commit_queue_test.py
+++ /dev/null
@@ -1,193 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Unit tests for commit_queue.py."""
-
-import logging
-import os
-import StringIO
-import sys
-import time
-import traceback
-import unittest
-
-ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
-sys.path.insert(0, os.path.join(ROOT_DIR, '..'))
-
-import commit_queue
-import context
-import creds
-
-from testing_support import auto_stub
-
-# From /tests
-import mocks
-
-
-class Stop(Exception):
-  pass
-
-
-class PendingManagerMock(auto_stub.SimpleMock):
-  def __init__(self, unit_test):
-    super(PendingManagerMock, self).__init__(unit_test)
-    self.context = context.Context(
-        mocks.RietveldMock(unit_test), mocks.SvnCheckoutMock(unit_test), None)
-    self.count = 0
-
-  def load(self, *args, **kwargs):
-    self._register_call(*args, **kwargs)
-
-  def save(self, *args, **kwargs):
-    self._register_call(*args, **kwargs)
-
-  def close(self, *args, **kwargs):
-    self._register_call(*args, **kwargs)
-
-  def look_for_new_pending_commit(self, *args, **kwargs):
-    self._register_call(*args, **kwargs)
-    self.count += 1
-    if self.count > 3:
-      raise Stop()
-
-  def process_new_pending_commit(self, *args, **kwargs):
-    self._register_call(*args, **kwargs)
-
-  def update_status(self, *args, **kwargs):
-    self._register_call(*args, **kwargs)
-
-  def scan_results(self, *args, **kwargs):
-    self._register_call(*args, **kwargs)
-
-
-class CredentialsMock(object):
-  @staticmethod
-  def get(user):
-    return '1%s1' % user
-
-
-class CommitQueueTest(auto_stub.TestCase):
-  def setUp(self):
-    super(CommitQueueTest, self).setUp()
-    self.mock(sys, 'argv', ['commit_queue.py'])
-    self.mock(sys, 'stdout', StringIO.StringIO())
-    self.mock(sys, 'stderr', StringIO.StringIO())
-    self.mock(commit_queue.projects, 'load_project', None)
-    self.mock(commit_queue, 'SetupLogging', lambda _: None)
-    # Setup logging attached to the mocked sys.stderr, printing
-    # only the exception name to make tests less fragile.
-    handler = logging.StreamHandler()
-    formatter = logging.Formatter()
-    formatter.formatException = lambda _: traceback.format_exc(0)
-    handler.setFormatter(formatter)
-    logging.getLogger().handlers = [handler]
-    self._time = 1
-    self.mock(time, 'time', self._get_time)
-    self.mock(creds, 'Credentials', self._get_cred)
-
-  def tearDown(self):
-    try:
-      if not self.has_failed():
-        self._check('stdout', '')
-        self._check('stderr', '')
-    finally:
-      super(CommitQueueTest, self).tearDown()
-
-  def _check(self, pipe, expected):
-    self.assertEqual(expected, self._pop(pipe))
-
-  def _get_time(self):
-    self._time += 10
-    return self._time
-
-  @staticmethod
-  def _pop(pipe):
-    data = getattr(sys, pipe).getvalue()
-    setattr(sys, pipe, StringIO.StringIO())
-    return data
-
-  def _get_cred(self, pwd):
-    rootdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-    workdir = os.path.join(rootdir, 'workdir')
-    self.assertEqual(os.path.join(workdir, '.gaia_pwd'), pwd)
-    return CredentialsMock()
-
-  def testHelp(self):
-    sys.argv.append('--help')
-    try:
-      commit_queue.main()
-      self.fail()
-    except SystemExit as e:
-      self.assertEqual(0, e.code)
-    output = self._pop('stdout')
-    # Cannot compare for the exact string since the formatting depends on the
-    # screen size.
-    self.assertIn('Minimum delay between each polling loop', output)
-    self.assertIn('Run for real instead of dry-run mode which', output)
-    self.assertLess(600, len(output), output)
-
-  def testChromium(self):
-    sys.argv.extend(('--project', 'chromium'))
-    calls = []
-    def load_project(*args):
-      calls.append(args)
-      return PendingManagerMock(self)
-
-    self.mock(commit_queue.projects, 'load_project', load_project)
-    try:
-      commit_queue.main()
-      self.fail()
-    except Stop:
-      pass
-    self.assertEqual(1, len(calls))
-    self.assertEqual('chromium', calls[0][0])
-    self.assertEqual('commit-bot@chromium.org', calls[0][1])
-    self.assertEqual(
-        os.path.join(os.path.dirname(ROOT_DIR), 'workdir'), calls[0][2])
-    self.assertEqual(None, calls[0][4])
-    self._check(
-        'stdout',
-        'Using read-only Rietveld\n'
-        'Using read-only checkout\n'
-        'Using read-only chromium-status interface\n')
-    self._check(
-        'stderr',
-        'CQ loop terminating\n'
-        'Traceback (most recent call last):\n'
-        'Stop\n\n'
-        'Saving db...\ndb save successful.\n')
-
-  def testDryRun(self):
-    sys.argv.extend(('--project', 'chromium'))
-    pc = PendingManagerMock(self)
-    self.mock(
-        commit_queue.projects,
-        'load_project',
-        lambda *args: pc)
-    try:
-      commit_queue.main()
-      self.fail()
-    except Stop:
-      pass
-    self.assertEqual(
-        'ReadOnlyCheckout', pc.context.checkout.__class__.__name__)
-    # Ugh.
-    self.assertEqual(
-        'RietveldMock', pc.context.rietveld.__class__.__name__)
-    self._check(
-        'stdout',
-        'Using read-only Rietveld\n'
-        'Using read-only checkout\n'
-        'Using read-only chromium-status interface\n')
-    self._check(
-        'stderr',
-        'CQ loop terminating\n'
-        'Traceback (most recent call last):\n'
-        'Stop\n\n'
-        'Saving db...\ndb save successful.\n')
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/tests/count_test.py b/tests/count_test.py
deleted file mode 100755
index 301c337..0000000
--- a/tests/count_test.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Unit tests for tools/count.py."""
-
-import os
-import sys
-import unittest
-
-ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
-PROJECT_DIR = os.path.join(ROOT_DIR, '..')
-sys.path.insert(0, PROJECT_DIR)
-
-
-import find_depot_tools  # pylint: disable=W0611
-import subprocess2
-
-
-class TestCount(unittest.TestCase):
-  def test_2011_04_09(self):
-    # Verifies commits done on that day.
-    # TODO(maruel): Import directly and do not use live data.
-    expected = (
-        "Getting data from 2011-04-09 for 1 days\n"
-        "Top users:           3 out of      3 total users  100.00%\n"
-        "  Committed          3 out of      3 CQ'ed commits 100.00%\n"
-        "\n"
-        "Total commits:                   26\n"
-        "Total commits by commit bot:      3 (  11.5%)\n")
-    exe_path = os.path.join(PROJECT_DIR, 'tools', 'count.py')
-    args = [sys.executable, exe_path, '-s', '2011-04-09', '-d', '1', '-o']
-    self.assertEqual(expected, subprocess2.check_output(args))
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/tests/data/testCMDbuilds.json b/tests/data/testCMDbuilds.json
deleted file mode 100644
index 83fcbb9..0000000
--- a/tests/data/testCMDbuilds.json
+++ /dev/null
@@ -1 +0,0 @@
-[["http://build.chromium.org/p/tryserver.chromium/json/builders/linux/builds/_all?filter=1","{\"33762\":{\"slave\":\"vm140-m4\",\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/update_scripts/logs/stdio\"],[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/update/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/compile/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/check_deps/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/base_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/cacheinvalidation_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/crypto_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/googleurl_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/gpu_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/jingle_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/media_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/net_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/printing_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/remoting_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/test_shell_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/safe_browsing_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/ipc_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/sync_unit_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/unit_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/app_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/gfx_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/browser_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/ui_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/nacl_ui_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/nacl_integration/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/interactive_ui_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/webkit_unit_tests/logs/stdio\"]],\"builderName\":\"linux\",\"text\":[\"build\",\"successful\"],\"number\":33762,\"times\":[1308849595.175241,1308853736.1849461],\"blame\":[\"mirandac@chromium.org\"],\"reason\":\"'mirandac: tabfinder' try job\",\"steps\":[{\"name\":\"update_scripts\",\"isFinished\":true,\"text\":[\"update_scripts\"],\"expectations\":[[\"output\",2618,2692.8313249813064]],\"isStarted\":true,\"times\":[1308849595.1773751,1308849610.2867391],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/update_scripts/logs/stdio\"]]},{\"name\":\"update\",\"isFinished\":true,\"step_number\":1,\"expectations\":[[\"output\",55676,104403.28136333823]],\"isStarted\":true,\"times\":[1308849610.2874589,1308849788.218452],\"text\":[\"update\",\"r90030\",\"webkit r89412\"],\"logs\":[[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/update/logs/stdio\"]]},{\"name\":\"compile\",\"isFinished\":true,\"step_number\":2,\"expectations\":[[\"output\",140974,475042.40157507674]],\"isStarted\":true,\"times\":[1308849788.219141,1308850531.266047],\"text\":[\"compile\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/compile/logs/stdio\"]]},{\"name\":\"check_deps\",\"isFinished\":true,\"step_number\":3,\"expectations\":[[\"output\",1004,1004.0000000596049]],\"isStarted\":true,\"times\":[1308850531.2663779,1308850592.0389409],\"text\":[\"check_deps\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/check_deps/logs/stdio\"]]},{\"name\":\"base_unittests\",\"isFinished\":true,\"step_number\":4,\"expectations\":[[\"output\",89196,89381.052763815955]],\"isStarted\":true,\"times\":[1308850592.0393119,1308850637.528332],\"text\":[\"base_unittests\",\"4 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/base_unittests/logs/stdio\"]]},{\"name\":\"cacheinvalidation_unittests\",\"isFinished\":true,\"step_number\":5,\"expectations\":[[\"output\",111431,111659.38675553762]],\"isStarted\":true,\"times\":[1308850637.5289299,1308850638.0098779],\"text\":[\"cacheinvalidation_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/cacheinvalidation_unittests/logs/stdio\"]]},{\"name\":\"crypto_unittests\",\"isFinished\":true,\"step_number\":6,\"expectations\":[[\"output\",7023,7022.8856304280935]],\"isStarted\":true,\"times\":[1308850638.010401,1308850639.004504],\"text\":[\"crypto_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/crypto_unittests/logs/stdio\"]]},{\"name\":\"googleurl_unittests\",\"isFinished\":true,\"step_number\":7,\"expectations\":[[\"output\",6183,6214.8066191007474]],\"isStarted\":true,\"times\":[1308850639.0050149,1308850639.4549389],\"text\":[\"googleurl_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/googleurl_unittests/logs/stdio\"]]},{\"name\":\"gpu_unittests\",\"isFinished\":true,\"step_number\":8,\"expectations\":[[\"output\",1258071,1258072.4165155331]],\"isStarted\":true,\"times\":[1308850639.4554451,1308850642.3813419],\"text\":[\"gpu_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/gpu_unittests/logs/stdio\"]]},{\"name\":\"jingle_unittests\",\"isFinished\":true,\"step_number\":9,\"expectations\":[[\"output\",15410,15409.179622135725]],\"isStarted\":true,\"times\":[1308850642.381748,1308850646.829128],\"text\":[\"jingle_unittests\",\"1 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/jingle_unittests/logs/stdio\"]]},{\"name\":\"media_unittests\",\"isFinished\":true,\"step_number\":10,\"expectations\":[[\"output\",33779,33784.570660509184]],\"isStarted\":true,\"times\":[1308850646.829668,1308850653.652715],\"text\":[\"media_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/media_unittests/logs/stdio\"]]},{\"name\":\"net_unittests\",\"isFinished\":true,\"step_number\":11,\"expectations\":[[\"output\",602714,602914.94115878304]],\"isStarted\":true,\"times\":[1308850653.6532891,1308850799.4372289],\"text\":[\"net_unittests\",\"6 disabled\",\"10 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/net_unittests/logs/stdio\"]]},{\"name\":\"printing_unittests\",\"isFinished\":true,\"step_number\":12,\"expectations\":[[\"output\",2897,2896.3685750027248]],\"isStarted\":true,\"times\":[1308850799.4375839,1308850800.03269],\"text\":[\"printing_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/printing_unittests/logs/stdio\"]]},{\"name\":\"remoting_unittests\",\"isFinished\":true,\"step_number\":13,\"expectations\":[[\"output\",48391,48397.09783720968]],\"isStarted\":true,\"times\":[1308850800.033185,1308850809.959028],\"text\":[\"remoting_unittests\",\"4 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/remoting_unittests/logs/stdio\"]]},{\"name\":\"test_shell_tests\",\"isFinished\":true,\"step_number\":14,\"expectations\":[[\"output\",91479,91469.966941036575]],\"isStarted\":true,\"times\":[1308850809.959533,1308850878.8998649],\"text\":[\"test_shell_tests\",\"1 disabled\",\"2 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/test_shell_tests/logs/stdio\"]]},{\"name\":\"safe_browsing_tests\",\"isFinished\":true,\"step_number\":15,\"expectations\":[[\"output\",33345,33163.301894515615]],\"isStarted\":true,\"times\":[1308850878.900188,1308850894.330982],\"text\":[\"safe_browsing_tests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/safe_browsing_tests/logs/stdio\"]]},{\"name\":\"ipc_tests\",\"isFinished\":true,\"step_number\":16,\"expectations\":[[\"output\",13906,14041.925619726822]],\"isStarted\":true,\"times\":[1308850894.3315611,1308850904.8690629],\"text\":[\"ipc_tests\",\"1 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/ipc_tests/logs/stdio\"]]},{\"name\":\"sync_unit_tests\",\"isFinished\":true,\"step_number\":17,\"expectations\":[[\"output\",72945,72982.662395054271]],\"isStarted\":true,\"times\":[1308850904.8696091,1308850915.106755],\"text\":[\"sync_unit_tests\",\"2 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/sync_unit_tests/logs/stdio\"]]},{\"name\":\"unit_tests\",\"isFinished\":true,\"step_number\":18,\"expectations\":[[\"output\",541149,552752.41732045054]],\"isStarted\":true,\"times\":[1308850915.1072769,1308851014.644017],\"text\":[\"unit_tests\",\"7 disabled\",\"5 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/unit_tests/logs/stdio\"]]},{\"name\":\"app_unittests\",\"isFinished\":true,\"step_number\":19,\"expectations\":[[\"output\",4514,4600.4527870989141]],\"isStarted\":true,\"times\":[1308851014.6444731,1308851018.2240651],\"text\":[\"app_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/app_unittests/logs/stdio\"]]},{\"name\":\"gfx_unittests\",\"isFinished\":true,\"step_number\":20,\"expectations\":[[\"output\",17736,17777.997544329672]],\"isStarted\":true,\"times\":[1308851018.2244909,1308851037.7886569],\"text\":[\"gfx_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/gfx_unittests/logs/stdio\"]]},{\"name\":\"browser_tests\",\"isFinished\":true,\"step_number\":21,\"expectations\":[[\"output\",717858,723190.28619638516]],\"isStarted\":true,\"times\":[1308851037.7892029,1308852488.6994181],\"text\":[\"browser_tests\",\"22 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/browser_tests/logs/stdio\"]]},{\"name\":\"ui_tests\",\"isFinished\":true,\"step_number\":22,\"expectations\":[[\"output\",276957,260623.74079161257]],\"isStarted\":true,\"times\":[1308852488.6999879,1308853341.9219739],\"text\":[\"ui_tests\",\"25 disabled\",\"67 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/ui_tests/logs/stdio\"]]},{\"name\":\"nacl_ui_tests\",\"isFinished\":true,\"step_number\":23,\"expectations\":[[\"output\",1593,1641.0055725567508]],\"isStarted\":true,\"times\":[1308853341.9225349,1308853344.984514],\"text\":[\"nacl_ui_tests\",\"8 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/nacl_ui_tests/logs/stdio\"]]},{\"name\":\"nacl_integration\",\"isFinished\":true,\"step_number\":24,\"expectations\":[[\"output\",488266,484790.3957553833]],\"isStarted\":true,\"times\":[1308853344.985131,1308853559.9914949],\"text\":[\"nacl_integration\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/nacl_integration/logs/stdio\"]]},{\"name\":\"interactive_ui_tests\",\"isFinished\":true,\"step_number\":25,\"expectations\":[[\"output\",49838,49978.611878035234]],\"isStarted\":true,\"times\":[1308853559.992058,1308853730.3407381],\"text\":[\"interactive_ui_tests\",\"9 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/interactive_ui_tests/logs/stdio\"]]},{\"name\":\"webkit_unit_tests\",\"isFinished\":true,\"step_number\":26,\"expectations\":[[\"output\",17959,17966.04413858927]],\"isStarted\":true,\"times\":[1308853730.3411641,1308853736.1840551],\"text\":[\"webkit_unit_tests\",\"1 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33762/steps/webkit_unit_tests/logs/stdio\"]]}],\"sourceStamp\":{\"changes\":[{\"who\":\"mirandac@chromium.org\",\"when\":1308849594.8467109}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:19:55.109468\",\"patchset\":1,\"issue\":7247010,\"job_name\":\"tabfinder\",\"revision\":90030},\"requests\":[{\"source\":{\"changes\":[{\"who\":\"mirandac@chromium.org\",\"when\":1308849594.8467109}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:19:55.109468\",\"patchset\":1,\"issue\":7247010,\"job_name\":\"tabfinder\",\"revision\":90030},\"submittedAt\":1308849595.1210749,\"builds\":[33762],\"builderName\":\"linux\"}],\"changes\":[\"File: \\nAt: Thu 23 Jun 2011 10:19:54\\nChanged By: mirandac@chromium.org\\nComments: Properties: \\n\\n\\n\"],\"properties\":[[\"blamelist\",[\"mirandac@chromium.org\"],\"Build\"],[\"branch\",null,\"Build\"],[\"buildername\",\"linux\",\"Build\"],[\"buildnumber\",33762,\"Build\"],[\"got_revision\",\"90030\",\"Source\"],[\"got_webkit_revision\",\"89412\",\"Source\"],[\"gtest_filter\",null,\"Factory\"],[\"mastername\",\"tryserver.chromium\",\"master.cfg\"],[\"revision\",90030,\"Build\"],[\"scheduler\",\"try_job_svn\",\"Scheduler\"],[\"slavename\",\"vm140-m4\",\"BuildSlave\"]]},\"33763\":{\"slave\":\"vm122-m4\",\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33763/steps/update_scripts/logs/stdio\"],[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33763/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33763/steps/update/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33763/steps/compile/logs/stdio\"]],\"builderName\":\"linux\",\"text\":[\"failed\",\"compile\"],\"number\":33763,\"results\":2,\"blame\":[\"sky@chromium.org\"],\"reason\":\"'sky: prerender_crash#6786b' try job\",\"steps\":[{\"name\":\"update_scripts\",\"isFinished\":true,\"text\":[\"update_scripts\"],\"expectations\":[[\"output\",2511,2692.8313249813064]],\"isStarted\":true,\"times\":[1308849635.760854,1308849653.643919],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33763/steps/update_scripts/logs/stdio\"]]},{\"name\":\"update\",\"isFinished\":true,\"step_number\":1,\"expectations\":[[\"output\",115494,104403.28136333823]],\"isStarted\":true,\"times\":[1308849653.6444099,1308849882.8415771],\"text\":[\"update\",\"r90125\",\"webkit r89393\"],\"logs\":[[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33763/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33763/steps/update/logs/stdio\"]]},{\"name\":\"compile\",\"isFinished\":true,\"step_number\":2,\"results\":[2,[\"compile\"]],\"isStarted\":true,\"expectations\":[[\"output\",239823,475042.40157507674]],\"text\":[\"compile\",\"failed\"],\"times\":[1308849882.8421879,1308850464.0212851],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33763/steps/compile/logs/stdio\"]]},{\"step_number\":3,\"text\":[\"running check_deps\"],\"expectations\":[[\"output\",null,1004.0000000596049]],\"name\":\"check_deps\"},{\"step_number\":4,\"text\":[\"running base_unittests\"],\"expectations\":[[\"output\",null,89381.052763815955]],\"name\":\"base_unittests\"},{\"step_number\":5,\"text\":[\"running cacheinvalidation_unittests\"],\"expectations\":[[\"output\",null,111659.38675553762]],\"name\":\"cacheinvalidation_unittests\"},{\"step_number\":6,\"text\":[\"running crypto_unittests\"],\"expectations\":[[\"output\",null,7022.8856304280935]],\"name\":\"crypto_unittests\"},{\"step_number\":7,\"text\":[\"running googleurl_unittests\"],\"expectations\":[[\"output\",null,6214.8066191007474]],\"name\":\"googleurl_unittests\"},{\"step_number\":8,\"text\":[\"running gpu_unittests\"],\"expectations\":[[\"output\",null,1258072.4165155331]],\"name\":\"gpu_unittests\"},{\"step_number\":9,\"text\":[\"running jingle_unittests\"],\"expectations\":[[\"output\",null,15409.179622135725]],\"name\":\"jingle_unittests\"},{\"step_number\":10,\"text\":[\"running media_unittests\"],\"expectations\":[[\"output\",null,33784.570660509184]],\"name\":\"media_unittests\"},{\"step_number\":11,\"text\":[\"running net_unittests\"],\"expectations\":[[\"output\",null,602914.94115878304]],\"name\":\"net_unittests\"},{\"step_number\":12,\"text\":[\"running printing_unittests\"],\"expectations\":[[\"output\",null,2896.3685750027248]],\"name\":\"printing_unittests\"},{\"step_number\":13,\"text\":[\"running remoting_unittests\"],\"expectations\":[[\"output\",null,48397.09783720968]],\"name\":\"remoting_unittests\"},{\"step_number\":14,\"text\":[\"running test_shell_tests\"],\"expectations\":[[\"output\",null,91469.966941036575]],\"name\":\"test_shell_tests\"},{\"step_number\":15,\"text\":[\"running safe_browsing_tests\"],\"expectations\":[[\"output\",null,33163.301894515615]],\"name\":\"safe_browsing_tests\"},{\"step_number\":16,\"text\":[\"running ipc_tests\"],\"expectations\":[[\"output\",null,14041.925619726822]],\"name\":\"ipc_tests\"},{\"step_number\":17,\"text\":[\"running sync_unit_tests\"],\"expectations\":[[\"output\",null,72982.662395054271]],\"name\":\"sync_unit_tests\"},{\"step_number\":18,\"text\":[\"running unit_tests\"],\"expectations\":[[\"output\",null,552752.41732045054]],\"name\":\"unit_tests\"},{\"step_number\":19,\"text\":[\"running app_unittests\"],\"expectations\":[[\"output\",null,4600.4527870989141]],\"name\":\"app_unittests\"},{\"step_number\":20,\"text\":[\"running gfx_unittests\"],\"expectations\":[[\"output\",null,17777.997544329672]],\"name\":\"gfx_unittests\"},{\"step_number\":21,\"text\":[\"running browser_tests\"],\"expectations\":[[\"output\",null,723190.28619638516]],\"name\":\"browser_tests\"},{\"step_number\":22,\"text\":[\"running ui_tests\"],\"expectations\":[[\"output\",null,260623.74079161257]],\"name\":\"ui_tests\"},{\"step_number\":23,\"text\":[\"running nacl_ui_tests\"],\"expectations\":[[\"output\",null,1641.0055725567508]],\"name\":\"nacl_ui_tests\"},{\"step_number\":24,\"text\":[\"running nacl_integration\"],\"expectations\":[[\"output\",null,484790.3957553833]],\"name\":\"nacl_integration\"},{\"step_number\":25,\"text\":[\"running interactive_ui_tests\"],\"expectations\":[[\"output\",null,49978.611878035234]],\"name\":\"interactive_ui_tests\"},{\"step_number\":26,\"text\":[\"running webkit_unit_tests\"],\"expectations\":[[\"output\",null,17966.04413858927]],\"name\":\"webkit_unit_tests\"}],\"sourceStamp\":{\"changes\":[{\"who\":\"sky@chromium.org\",\"when\":1308849635.7077761,\"revision\":\"90125\"}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:20:35.707832\",\"patchset\":1,\"issue\":7246012,\"job_name\":\"prerender_crash#6786b\",\"revision\":\"90125\"},\"requests\":[{\"source\":{\"changes\":[{\"who\":\"sky@chromium.org\",\"when\":1308849635.7077761,\"revision\":\"90125\"}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:20:35.707832\",\"patchset\":1,\"issue\":7246012,\"job_name\":\"prerender_crash#6786b\",\"revision\":\"90125\"},\"submittedAt\":1308849635.714309,\"builds\":[33763],\"builderName\":\"linux\"}],\"times\":[1308849635.758812,1308850464.022275],\"changes\":[\"File: \\nAt: Thu 23 Jun 2011 10:20:35\\nChanged By: sky@chromium.org\\nComments: Properties: \\n\\n\\n\"],\"properties\":[[\"blamelist\",[\"sky@chromium.org\"],\"Build\"],[\"branch\",null,\"Build\"],[\"buildername\",\"linux\",\"Build\"],[\"buildnumber\",33763,\"Build\"],[\"got_revision\",\"90125\",\"Source\"],[\"got_webkit_revision\",\"89393\",\"Source\"],[\"mastername\",\"tryserver.chromium\",\"master.cfg\"],[\"revision\",\"90125\",\"Build\"],[\"scheduler\",\"try_job_svn\",\"Scheduler\"],[\"slavename\",\"vm122-m4\",\"BuildSlave\"]]},\"33771\":{\"slave\":\"vm134-m4\",\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33771/steps/update_scripts/logs/stdio\"],[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33771/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33771/steps/update/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33771/steps/compile/logs/stdio\"]],\"builderName\":\"linux\",\"text\":[\"failed\",\"compile\"],\"number\":33771,\"results\":2,\"blame\":[\"dominich@chromium.org\"],\"reason\":\"'dominich: remove_xhr_cancel#848adb' try job\",\"steps\":[{\"name\":\"update_scripts\",\"isFinished\":true,\"text\":[\"update_scripts\"],\"expectations\":[[\"output\",2511,2546.1509789056659]],\"isStarted\":true,\"times\":[1308850915.133724,1308850931.3612781],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33771/steps/update_scripts/logs/stdio\"]]},{\"name\":\"update\",\"isFinished\":true,\"step_number\":1,\"expectations\":[[\"output\",59229,109231.19629260432]],\"isStarted\":true,\"times\":[1308850931.3619421,1308851104.857317],\"text\":[\"update\",\"r90030\",\"webkit r89412\"],\"logs\":[[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33771/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33771/steps/update/logs/stdio\"]]},{\"name\":\"compile\",\"isFinished\":true,\"step_number\":2,\"results\":[2,[\"compile\"]],\"isStarted\":true,\"expectations\":[[\"output\",49031,309187.38754922117]],\"text\":[\"compile\",\"failed\"],\"times\":[1308851104.8579891,1308851949.4550569],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33771/steps/compile/logs/stdio\"]]},{\"step_number\":3,\"text\":[\"running check_deps\"],\"expectations\":[[\"output\",null,1004.1250000074506]],\"name\":\"check_deps\"},{\"step_number\":4,\"text\":[\"running base_unittests\"],\"expectations\":[[\"output\",null,89346.876648869249]],\"name\":\"base_unittests\"},{\"step_number\":5,\"text\":[\"running cacheinvalidation_unittests\"],\"expectations\":[[\"output\",null,111708.1733444422]],\"name\":\"cacheinvalidation_unittests\"},{\"step_number\":6,\"text\":[\"running crypto_unittests\"],\"expectations\":[[\"output\",null,7022.7357038035116]],\"name\":\"crypto_unittests\"},{\"step_number\":7,\"text\":[\"running googleurl_unittests\"],\"expectations\":[[\"output\",null,6209.1814568468981]],\"name\":\"googleurl_unittests\"},{\"step_number\":8,\"text\":[\"running gpu_unittests\"],\"expectations\":[[\"output\",null,1258073.3020644416]],\"name\":\"gpu_unittests\"},{\"step_number\":9,\"text\":[\"running jingle_unittests\"],\"expectations\":[[\"output\",null,15409.272452766965]],\"name\":\"jingle_unittests\"},{\"step_number\":10,\"text\":[\"running media_unittests\"],\"expectations\":[[\"output\",null,33783.392833140912]],\"name\":\"media_unittests\"},{\"step_number\":11,\"text\":[\"running net_unittests\"],\"expectations\":[[\"output\",null,611397.90441121196]],\"name\":\"net_unittests\"},{\"step_number\":12,\"text\":[\"running printing_unittests\"],\"expectations\":[[\"output\",null,2895.1710718753407]],\"name\":\"printing_unittests\"},{\"step_number\":13,\"text\":[\"running remoting_unittests\"],\"expectations\":[[\"output\",null,48397.012229651213]],\"name\":\"remoting_unittests\"},{\"step_number\":14,\"text\":[\"running test_shell_tests\"],\"expectations\":[[\"output\",null,92257.745867629565]],\"name\":\"test_shell_tests\"},{\"step_number\":15,\"text\":[\"running safe_browsing_tests\"],\"expectations\":[[\"output\",null,33369.162736814455]],\"name\":\"safe_browsing_tests\"},{\"step_number\":16,\"text\":[\"running ipc_tests\"],\"expectations\":[[\"output\",null,13975.810175616463]],\"name\":\"ipc_tests\"},{\"step_number\":17,\"text\":[\"running sync_unit_tests\"],\"expectations\":[[\"output\",null,73009.83279938178]],\"name\":\"sync_unit_tests\"},{\"step_number\":18,\"text\":[\"running unit_tests\"],\"expectations\":[[\"output\",null,554458.63804126414]],\"name\":\"unit_tests\"},{\"step_number\":19,\"text\":[\"running app_unittests\"],\"expectations\":[[\"output\",null,4560.357899596841]],\"name\":\"app_unittests\"},{\"step_number\":20,\"text\":[\"running gfx_unittests\"],\"expectations\":[[\"output\",null,17823.749693041209]],\"name\":\"gfx_unittests\"},{\"step_number\":21,\"text\":[\"running browser_tests\"],\"expectations\":[[\"output\",null,726862.16077454807]],\"name\":\"browser_tests\"},{\"step_number\":22,\"text\":[\"running ui_tests\"],\"expectations\":[[\"output\",null,261956.84259895157]],\"name\":\"ui_tests\"},{\"step_number\":23,\"text\":[\"running nacl_ui_tests\"],\"expectations\":[[\"output\",null,1693.5006965695939]],\"name\":\"nacl_ui_tests\"},{\"step_number\":24,\"text\":[\"running nacl_integration\"],\"expectations\":[[\"output\",null,492440.2994694229]],\"name\":\"nacl_integration\"},{\"step_number\":25,\"text\":[\"running interactive_ui_tests\"],\"expectations\":[[\"output\",null,49766.826484754405]],\"name\":\"interactive_ui_tests\"},{\"step_number\":26,\"text\":[\"running webkit_unit_tests\"],\"expectations\":[[\"output\",null,17962.630517323658]],\"name\":\"webkit_unit_tests\"}],\"sourceStamp\":{\"changes\":[{\"who\":\"dominich@chromium.org\",\"when\":1308850914.83285}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:41:54.996740\",\"patchset\":1006,\"issue\":7247012,\"job_name\":\"remove_xhr_cancel#848adb\",\"revision\":90030},\"requests\":[{\"source\":{\"changes\":[{\"who\":\"dominich@chromium.org\",\"when\":1308850914.83285}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:41:54.996740\",\"patchset\":1006,\"issue\":7247012,\"job_name\":\"remove_xhr_cancel#848adb\",\"revision\":90030},\"submittedAt\":1308850915.0024769,\"builds\":[33771],\"builderName\":\"linux\"}],\"times\":[1308850915.1316619,1308851949.456038],\"changes\":[\"File: \\nAt: Thu 23 Jun 2011 10:41:54\\nChanged By: dominich@chromium.org\\nComments: Properties: \\n\\n\\n\"],\"properties\":[[\"blamelist\",[\"dominich@chromium.org\"],\"Build\"],[\"branch\",null,\"Build\"],[\"buildername\",\"linux\",\"Build\"],[\"buildnumber\",33771,\"Build\"],[\"got_revision\",\"90030\",\"Source\"],[\"got_webkit_revision\",\"89412\",\"Source\"],[\"mastername\",\"tryserver.chromium\",\"master.cfg\"],[\"revision\",90030,\"Build\"],[\"scheduler\",\"try_job_svn\",\"Scheduler\"],[\"slavename\",\"vm134-m4\",\"BuildSlave\"]]},\"33770\":{\"slave\":\"vm137-m4\",\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/update_scripts/logs/stdio\"],[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/update/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/compile/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/check_deps/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/base_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/cacheinvalidation_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/crypto_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/googleurl_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/gpu_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/jingle_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/media_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/net_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/printing_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/remoting_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/test_shell_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/safe_browsing_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/ipc_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/sync_unit_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/unit_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/app_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/gfx_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/browser_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/ui_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/nacl_ui_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/nacl_integration/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/interactive_ui_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/webkit_unit_tests/logs/stdio\"]],\"builderName\":\"linux\",\"text\":[\"build\",\"successful\"],\"number\":33770,\"times\":[1308850687.2172639,1308855079.5076721],\"blame\":[\"zmo@google.com\"],\"reason\":\"'zmo: size' try job\",\"steps\":[{\"name\":\"update_scripts\",\"isFinished\":true,\"text\":[\"update_scripts\"],\"expectations\":[[\"output\",2511,2604.3019578113317]],\"isStarted\":true,\"times\":[1308850687.218658,1308850702.3014071],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/update_scripts/logs/stdio\"]]},{\"name\":\"update\",\"isFinished\":true,\"step_number\":1,\"expectations\":[[\"output\",165291,160695.39258520864]],\"isStarted\":true,\"times\":[1308850702.3022101,1308850974.9911499],\"text\":[\"update\",\"r90030\",\"webkit r89412\"],\"logs\":[[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/update/logs/stdio\"]]},{\"name\":\"compile\",\"isFinished\":true,\"step_number\":2,\"expectations\":[[\"output\",612137,567511.77509844233]],\"isStarted\":true,\"times\":[1308850974.9918311,1308852066.0239921],\"text\":[\"compile\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/compile/logs/stdio\"]]},{\"name\":\"check_deps\",\"isFinished\":true,\"step_number\":3,\"expectations\":[[\"output\",1004,1004.2500000149012]],\"isStarted\":true,\"times\":[1308852066.024596,1308852126.1444249],\"text\":[\"check_deps\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/check_deps/logs/stdio\"]]},{\"name\":\"base_unittests\",\"isFinished\":true,\"step_number\":4,\"expectations\":[[\"output\",89191,89495.753297738498]],\"isStarted\":true,\"times\":[1308852126.1450341,1308852169.237612],\"text\":[\"base_unittests\",\"4 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/base_unittests/logs/stdio\"]]},{\"name\":\"cacheinvalidation_unittests\",\"isFinished\":true,\"step_number\":5,\"expectations\":[[\"output\",111459,112000.3466888844]],\"isStarted\":true,\"times\":[1308852169.238245,1308852169.6350181],\"text\":[\"cacheinvalidation_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/cacheinvalidation_unittests/logs/stdio\"]]},{\"name\":\"crypto_unittests\",\"isFinished\":true,\"step_number\":6,\"expectations\":[[\"output\",7021,7022.4714076070231]],\"isStarted\":true,\"times\":[1308852169.6355219,1308852170.699465],\"text\":[\"crypto_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/crypto_unittests/logs/stdio\"]]},{\"name\":\"googleurl_unittests\",\"isFinished\":true,\"step_number\":7,\"expectations\":[[\"output\",6185,6233.3629136937961]],\"isStarted\":true,\"times\":[1308852170.6999879,1308852172.1963451],\"text\":[\"googleurl_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/googleurl_unittests/logs/stdio\"]]},{\"name\":\"gpu_unittests\",\"isFinished\":true,\"step_number\":8,\"expectations\":[[\"output\",1258072,1258074.6041288832]],\"isStarted\":true,\"times\":[1308852172.196732,1308852177.2146609],\"text\":[\"gpu_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/gpu_unittests/logs/stdio\"]]},{\"name\":\"jingle_unittests\",\"isFinished\":true,\"step_number\":9,\"expectations\":[[\"output\",15410,15409.54490553393]],\"isStarted\":true,\"times\":[1308852177.215091,1308852183.239598],\"text\":[\"jingle_unittests\",\"1 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/jingle_unittests/logs/stdio\"]]},{\"name\":\"media_unittests\",\"isFinished\":true,\"step_number\":10,\"expectations\":[[\"output\",33781,33784.785666281823]],\"isStarted\":true,\"times\":[1308852183.2399161,1308852192.4930301],\"text\":[\"media_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/media_unittests/logs/stdio\"]]},{\"name\":\"net_unittests\",\"isFinished\":true,\"step_number\":11,\"expectations\":[[\"output\",602448,604005.80882242392]],\"isStarted\":true,\"times\":[1308852192.4935739,1308852340.4342029],\"text\":[\"net_unittests\",\"6 disabled\",\"10 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/net_unittests/logs/stdio\"]]},{\"name\":\"printing_unittests\",\"isFinished\":true,\"step_number\":12,\"expectations\":[[\"output\",2897,2896.3421437506813]],\"isStarted\":true,\"times\":[1308852340.4347341,1308852341.1025989],\"text\":[\"printing_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/printing_unittests/logs/stdio\"]]},{\"name\":\"remoting_unittests\",\"isFinished\":true,\"step_number\":13,\"expectations\":[[\"output\",48392,48402.024459302418]],\"isStarted\":true,\"times\":[1308852341.1030891,1308852345.5660651],\"text\":[\"remoting_unittests\",\"4 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/remoting_unittests/logs/stdio\"]]},{\"name\":\"test_shell_tests\",\"isFinished\":true,\"step_number\":14,\"expectations\":[[\"output\",91466,91807.491735259144]],\"isStarted\":true,\"times\":[1308852345.5665979,1308852411.749408],\"text\":[\"test_shell_tests\",\"1 disabled\",\"2 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/test_shell_tests/logs/stdio\"]]},{\"name\":\"safe_browsing_tests\",\"isFinished\":true,\"step_number\":15,\"expectations\":[[\"output\",33348,33390.325473628902]],\"isStarted\":true,\"times\":[1308852411.7499721,1308852429.81721],\"text\":[\"safe_browsing_tests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/safe_browsing_tests/logs/stdio\"]]},{\"name\":\"ipc_tests\",\"isFinished\":true,\"step_number\":16,\"expectations\":[[\"output\",14042,14044.620351232927]],\"isStarted\":true,\"times\":[1308852429.8177731,1308852440.702678],\"text\":[\"ipc_tests\",\"1 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/ipc_tests/logs/stdio\"]]},{\"name\":\"sync_unit_tests\",\"isFinished\":true,\"step_number\":17,\"expectations\":[[\"output\",72942,73019.66559876356]],\"isStarted\":true,\"times\":[1308852440.7032261,1308852450.9221821],\"text\":[\"sync_unit_tests\",\"2 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/sync_unit_tests/logs/stdio\"]]},{\"name\":\"unit_tests\",\"isFinished\":true,\"step_number\":18,\"expectations\":[[\"output\",541229,557797.27608252817]],\"isStarted\":true,\"times\":[1308852450.9227171,1308852552.038635],\"text\":[\"unit_tests\",\"7 disabled\",\"5 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/unit_tests/logs/stdio\"]]},{\"name\":\"app_unittests\",\"isFinished\":true,\"step_number\":19,\"expectations\":[[\"output\",4642,4604.715799193682]],\"isStarted\":true,\"times\":[1308852552.0391231,1308852552.753752],\"text\":[\"app_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/app_unittests/logs/stdio\"]]},{\"name\":\"gfx_unittests\",\"isFinished\":true,\"step_number\":20,\"expectations\":[[\"output\",17733,17909.499386082418]],\"isStarted\":true,\"times\":[1308852552.754102,1308852573.1758151],\"text\":[\"gfx_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/gfx_unittests/logs/stdio\"]]},{\"name\":\"browser_tests\",\"isFinished\":true,\"step_number\":21,\"expectations\":[[\"output\",717267,724350.32154909626]],\"isStarted\":true,\"times\":[1308852573.1761861,1308854018.9887841],\"text\":[\"browser_tests\",\"22 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/browser_tests/logs/stdio\"]]},{\"name\":\"ui_tests\",\"isFinished\":true,\"step_number\":22,\"expectations\":[[\"output\",260187,271733.68519790313]],\"isStarted\":true,\"times\":[1308854018.9891641,1308854691.8153689],\"text\":[\"ui_tests\",\"25 disabled\",\"67 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/ui_tests/logs/stdio\"]]},{\"name\":\"nacl_ui_tests\",\"isFinished\":true,\"step_number\":23,\"expectations\":[[\"output\",1656,1794.0013931391877]],\"isStarted\":true,\"times\":[1308854691.8159239,1308854699.1062911],\"text\":[\"nacl_ui_tests\",\"8 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/nacl_ui_tests/logs/stdio\"]]},{\"name\":\"nacl_integration\",\"isFinished\":true,\"step_number\":24,\"expectations\":[[\"output\",480517,487791.5989388458]],\"isStarted\":true,\"times\":[1308854699.1067009,1308854913.047756],\"text\":[\"nacl_integration\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/nacl_integration/logs/stdio\"]]},{\"name\":\"interactive_ui_tests\",\"isFinished\":true,\"step_number\":25,\"expectations\":[[\"output\",51718,49205.65296950881]],\"isStarted\":true,\"times\":[1308854913.048305,1308855073.730231],\"text\":[\"interactive_ui_tests\",\"9 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/interactive_ui_tests/logs/stdio\"]]},{\"name\":\"webkit_unit_tests\",\"isFinished\":true,\"step_number\":26,\"expectations\":[[\"output\",17956,17959.261034647316]],\"isStarted\":true,\"times\":[1308855073.730557,1308855079.5072491],\"text\":[\"webkit_unit_tests\",\"1 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33770/steps/webkit_unit_tests/logs/stdio\"]]}],\"sourceStamp\":{\"changes\":[{\"who\":\"zmo@google.com\",\"when\":1308850686.243767}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:38:06.406052\",\"patchset\":5001,\"issue\":7238008,\"job_name\":\"size\",\"revision\":90030},\"requests\":[{\"source\":{\"changes\":[{\"who\":\"zmo@google.com\",\"when\":1308850686.243767}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:38:06.406052\",\"patchset\":5001,\"issue\":7238008,\"job_name\":\"size\",\"revision\":90030},\"submittedAt\":1308850686.416399,\"builds\":[33770],\"builderName\":\"linux\"}],\"changes\":[\"File: \\nAt: Thu 23 Jun 2011 10:38:06\\nChanged By: zmo@google.com\\nComments: Properties: \\n\\n\\n\"],\"properties\":[[\"blamelist\",[\"zmo@google.com\"],\"Build\"],[\"branch\",null,\"Build\"],[\"buildername\",\"linux\",\"Build\"],[\"buildnumber\",33770,\"Build\"],[\"got_revision\",\"90030\",\"Source\"],[\"got_webkit_revision\",\"89412\",\"Source\"],[\"gtest_filter\",null,\"Factory\"],[\"mastername\",\"tryserver.chromium\",\"master.cfg\"],[\"revision\",90030,\"Build\"],[\"scheduler\",\"try_job_svn\",\"Scheduler\"],[\"slavename\",\"vm137-m4\",\"BuildSlave\"]]},\"33766\":{\"slave\":\"vm149-m4\",\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33766/steps/update_scripts/logs/stdio\"],[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33766/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33766/steps/update/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33766/steps/compile/logs/stdio\"]],\"builderName\":\"linux\",\"text\":[\"failed\",\"compile\"],\"number\":33766,\"results\":2,\"blame\":[\"mad@chromium.org\"],\"reason\":\"'mad: Snap2' try job\",\"steps\":[{\"name\":\"update_scripts\",\"isFinished\":true,\"text\":[\"update_scripts\"],\"expectations\":[[\"output\",3659,2590.4156624906532]],\"isStarted\":true,\"times\":[1308850015.357034,1308850031.0261481],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33766/steps/update_scripts/logs/stdio\"]]},{\"name\":\"update\",\"isFinished\":true,\"step_number\":1,\"expectations\":[[\"output\",52938,80977.140681669116]],\"isStarted\":true,\"times\":[1308850031.0266249,1308850188.9555709],\"text\":[\"update\",\"r90030\",\"webkit r89412\"],\"logs\":[[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33766/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33766/steps/update/logs/stdio\"]]},{\"name\":\"compile\",\"isFinished\":true,\"step_number\":2,\"results\":[2,[\"compile\"]],\"isStarted\":true,\"expectations\":[[\"output\",22025,262952.20078753837]],\"text\":[\"compile\",\"failed\"],\"times\":[1308850188.9561601,1308850437.271107],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33766/steps/compile/logs/stdio\"]]},{\"step_number\":3,\"text\":[\"running check_deps\"],\"expectations\":[[\"output\",null,1004.5000000298024]],\"name\":\"check_deps\"},{\"step_number\":4,\"text\":[\"running base_unittests\"],\"expectations\":[[\"output\",null,89293.026381907985]],\"name\":\"base_unittests\"},{\"step_number\":5,\"text\":[\"running cacheinvalidation_unittests\"],\"expectations\":[[\"output\",null,111541.69337776881]],\"name\":\"cacheinvalidation_unittests\"},{\"step_number\":6,\"text\":[\"running crypto_unittests\"],\"expectations\":[[\"output\",null,7021.9428152140463]],\"name\":\"crypto_unittests\"},{\"step_number\":7,\"text\":[\"running googleurl_unittests\"],\"expectations\":[[\"output\",null,6199.9033095503737]],\"name\":\"googleurl_unittests\"},{\"step_number\":8,\"text\":[\"running gpu_unittests\"],\"expectations\":[[\"output\",null,1258075.2082577664]],\"name\":\"gpu_unittests\"},{\"step_number\":9,\"text\":[\"running jingle_unittests\"],\"expectations\":[[\"output\",null,15411.089811067863]],\"name\":\"jingle_unittests\"},{\"step_number\":10,\"text\":[\"running media_unittests\"],\"expectations\":[[\"output\",null,33783.285330254592]],\"name\":\"media_unittests\"},{\"step_number\":11,\"text\":[\"running net_unittests\"],\"expectations\":[[\"output\",null,610870.47057939158]],\"name\":\"net_unittests\"},{\"step_number\":12,\"text\":[\"running printing_unittests\"],\"expectations\":[[\"output\",null,2895.6842875013626]],\"name\":\"printing_unittests\"},{\"step_number\":13,\"text\":[\"running remoting_unittests\"],\"expectations\":[[\"output\",null,48394.048918604836]],\"name\":\"remoting_unittests\"},{\"step_number\":14,\"text\":[\"running test_shell_tests\"],\"expectations\":[[\"output\",null,92080.983470518288]],\"name\":\"test_shell_tests\"},{\"step_number\":15,\"text\":[\"running safe_browsing_tests\"],\"expectations\":[[\"output\",null,33255.650947257804]],\"name\":\"safe_browsing_tests\"},{\"step_number\":16,\"text\":[\"running ipc_tests\"],\"expectations\":[[\"output\",null,14041.962809863411]],\"name\":\"ipc_tests\"},{\"step_number\":17,\"text\":[\"running sync_unit_tests\"],\"expectations\":[[\"output\",null,72971.331197527135]],\"name\":\"sync_unit_tests\"},{\"step_number\":18,\"text\":[\"running unit_tests\"],\"expectations\":[[\"output\",null,551904.20866022527]],\"name\":\"unit_tests\"},{\"step_number\":19,\"text\":[\"running app_unittests\"],\"expectations\":[[\"output\",null,4588.7263935494575]],\"name\":\"app_unittests\"},{\"step_number\":20,\"text\":[\"running gfx_unittests\"],\"expectations\":[[\"output\",null,17756.998772164836]],\"name\":\"gfx_unittests\"},{\"step_number\":21,\"text\":[\"running browser_tests\"],\"expectations\":[[\"output\",null,721055.64309819252]],\"name\":\"browser_tests\"},{\"step_number\":22,\"text\":[\"running ui_tests\"],\"expectations\":[[\"output\",null,259718.37039580627]],\"name\":\"ui_tests\"},{\"step_number\":23,\"text\":[\"running nacl_ui_tests\"],\"expectations\":[[\"output\",null,1617.0027862783754]],\"name\":\"nacl_ui_tests\"},{\"step_number\":24,\"text\":[\"running nacl_integration\"],\"expectations\":[[\"output\",null,490588.19787769165]],\"name\":\"nacl_integration\"},{\"step_number\":25,\"text\":[\"running interactive_ui_tests\"],\"expectations\":[[\"output\",null,50160.30593901762]],\"name\":\"interactive_ui_tests\"},{\"step_number\":26,\"text\":[\"running webkit_unit_tests\"],\"expectations\":[[\"output\",null,17964.522069294635]],\"name\":\"webkit_unit_tests\"}],\"sourceStamp\":{\"changes\":[{\"who\":\"mad@chromium.org\",\"when\":1308850015.0817201}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:26:55.254390\",\"patchset\":1003,\"issue\":7246010,\"job_name\":\"Snap2\",\"revision\":90030},\"requests\":[{\"source\":{\"changes\":[{\"who\":\"mad@chromium.org\",\"when\":1308850015.0817201}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:26:55.254390\",\"patchset\":1003,\"issue\":7246010,\"job_name\":\"Snap2\",\"revision\":90030},\"submittedAt\":1308850015.265362,\"builds\":[33766],\"builderName\":\"linux\"}],\"times\":[1308850015.354583,1308850437.2721939],\"changes\":[\"File: \\nAt: Thu 23 Jun 2011 10:26:55\\nChanged By: mad@chromium.org\\nComments: Properties: \\n\\n\\n\"],\"properties\":[[\"blamelist\",[\"mad@chromium.org\"],\"Build\"],[\"branch\",null,\"Build\"],[\"buildername\",\"linux\",\"Build\"],[\"buildnumber\",33766,\"Build\"],[\"got_revision\",\"90030\",\"Source\"],[\"got_webkit_revision\",\"89412\",\"Source\"],[\"mastername\",\"tryserver.chromium\",\"master.cfg\"],[\"revision\",90030,\"Build\"],[\"scheduler\",\"try_job_svn\",\"Scheduler\"],[\"slavename\",\"vm149-m4\",\"BuildSlave\"]]},\"33767\":{\"slave\":\"vm129-m4\",\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33767/steps/update_scripts/logs/stdio\"],[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33767/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33767/steps/update/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33767/steps/compile/logs/stdio\"]],\"builderName\":\"linux\",\"text\":[\"failed\",\"compile\"],\"number\":33767,\"results\":2,\"blame\":[\"gagansingh@google.com\"],\"reason\":\"'gagansingh: warmest_socket_first' try job\",\"steps\":[{\"name\":\"update_scripts\",\"isFinished\":true,\"text\":[\"update_scripts\"],\"expectations\":[[\"output\",3848,2590.4156624906532]],\"isStarted\":true,\"times\":[1308850045.1404309,1308850057.3060701],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33767/steps/update_scripts/logs/stdio\"]]},{\"name\":\"update\",\"isFinished\":true,\"step_number\":1,\"expectations\":[[\"output\",55299,80977.140681669116]],\"isStarted\":true,\"times\":[1308850057.3067729,1308850225.7784641],\"text\":[\"update\",\"r90030\",\"webkit r89412\"],\"logs\":[[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33767/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33767/steps/update/logs/stdio\"]]},{\"name\":\"compile\",\"isFinished\":true,\"step_number\":2,\"results\":[2,[\"compile\"]],\"isStarted\":true,\"expectations\":[[\"output\",30934,262952.20078753837]],\"text\":[\"compile\",\"failed\"],\"times\":[1308850225.779083,1308850592.043354],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33767/steps/compile/logs/stdio\"]]},{\"step_number\":3,\"text\":[\"running check_deps\"],\"expectations\":[[\"output\",null,1004.5000000298024]],\"name\":\"check_deps\"},{\"step_number\":4,\"text\":[\"running base_unittests\"],\"expectations\":[[\"output\",null,89293.026381907985]],\"name\":\"base_unittests\"},{\"step_number\":5,\"text\":[\"running cacheinvalidation_unittests\"],\"expectations\":[[\"output\",null,111541.69337776881]],\"name\":\"cacheinvalidation_unittests\"},{\"step_number\":6,\"text\":[\"running crypto_unittests\"],\"expectations\":[[\"output\",null,7021.9428152140463]],\"name\":\"crypto_unittests\"},{\"step_number\":7,\"text\":[\"running googleurl_unittests\"],\"expectations\":[[\"output\",null,6199.9033095503737]],\"name\":\"googleurl_unittests\"},{\"step_number\":8,\"text\":[\"running gpu_unittests\"],\"expectations\":[[\"output\",null,1258075.2082577664]],\"name\":\"gpu_unittests\"},{\"step_number\":9,\"text\":[\"running jingle_unittests\"],\"expectations\":[[\"output\",null,15411.089811067863]],\"name\":\"jingle_unittests\"},{\"step_number\":10,\"text\":[\"running media_unittests\"],\"expectations\":[[\"output\",null,33783.285330254592]],\"name\":\"media_unittests\"},{\"step_number\":11,\"text\":[\"running net_unittests\"],\"expectations\":[[\"output\",null,610870.47057939158]],\"name\":\"net_unittests\"},{\"step_number\":12,\"text\":[\"running printing_unittests\"],\"expectations\":[[\"output\",null,2895.6842875013626]],\"name\":\"printing_unittests\"},{\"step_number\":13,\"text\":[\"running remoting_unittests\"],\"expectations\":[[\"output\",null,48394.048918604836]],\"name\":\"remoting_unittests\"},{\"step_number\":14,\"text\":[\"running test_shell_tests\"],\"expectations\":[[\"output\",null,92080.983470518288]],\"name\":\"test_shell_tests\"},{\"step_number\":15,\"text\":[\"running safe_browsing_tests\"],\"expectations\":[[\"output\",null,33255.650947257804]],\"name\":\"safe_browsing_tests\"},{\"step_number\":16,\"text\":[\"running ipc_tests\"],\"expectations\":[[\"output\",null,14041.962809863411]],\"name\":\"ipc_tests\"},{\"step_number\":17,\"text\":[\"running sync_unit_tests\"],\"expectations\":[[\"output\",null,72971.331197527135]],\"name\":\"sync_unit_tests\"},{\"step_number\":18,\"text\":[\"running unit_tests\"],\"expectations\":[[\"output\",null,551904.20866022527]],\"name\":\"unit_tests\"},{\"step_number\":19,\"text\":[\"running app_unittests\"],\"expectations\":[[\"output\",null,4588.7263935494575]],\"name\":\"app_unittests\"},{\"step_number\":20,\"text\":[\"running gfx_unittests\"],\"expectations\":[[\"output\",null,17756.998772164836]],\"name\":\"gfx_unittests\"},{\"step_number\":21,\"text\":[\"running browser_tests\"],\"expectations\":[[\"output\",null,721055.64309819252]],\"name\":\"browser_tests\"},{\"step_number\":22,\"text\":[\"running ui_tests\"],\"expectations\":[[\"output\",null,259718.37039580627]],\"name\":\"ui_tests\"},{\"step_number\":23,\"text\":[\"running nacl_ui_tests\"],\"expectations\":[[\"output\",null,1617.0027862783754]],\"name\":\"nacl_ui_tests\"},{\"step_number\":24,\"text\":[\"running nacl_integration\"],\"expectations\":[[\"output\",null,490588.19787769165]],\"name\":\"nacl_integration\"},{\"step_number\":25,\"text\":[\"running interactive_ui_tests\"],\"expectations\":[[\"output\",null,50160.30593901762]],\"name\":\"interactive_ui_tests\"},{\"step_number\":26,\"text\":[\"running webkit_unit_tests\"],\"expectations\":[[\"output\",null,17964.522069294635]],\"name\":\"webkit_unit_tests\"}],\"sourceStamp\":{\"changes\":[{\"who\":\"gagansingh@google.com\",\"when\":1308850044.8455319}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:27:25.022002\",\"patchset\":25289,\"issue\":7189055,\"job_name\":\"warmest_socket_first\",\"revision\":90030},\"requests\":[{\"source\":{\"changes\":[{\"who\":\"gagansingh@google.com\",\"when\":1308850044.8455319}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:27:25.022002\",\"patchset\":25289,\"issue\":7189055,\"job_name\":\"warmest_socket_first\",\"revision\":90030},\"submittedAt\":1308850045.0471251,\"builds\":[33767],\"builderName\":\"linux\"}],\"times\":[1308850045.138366,1308850592.044023],\"changes\":[\"File: \\nAt: Thu 23 Jun 2011 10:27:24\\nChanged By: gagansingh@google.com\\nComments: Properties: \\n\\n\\n\"],\"properties\":[[\"blamelist\",[\"gagansingh@google.com\"],\"Build\"],[\"branch\",null,\"Build\"],[\"buildername\",\"linux\",\"Build\"],[\"buildnumber\",33767,\"Build\"],[\"got_revision\",\"90030\",\"Source\"],[\"got_webkit_revision\",\"89412\",\"Source\"],[\"mastername\",\"tryserver.chromium\",\"master.cfg\"],[\"revision\",90030,\"Build\"],[\"scheduler\",\"try_job_svn\",\"Scheduler\"],[\"slavename\",\"vm129-m4\",\"BuildSlave\"]]},\"33764\":{\"slave\":\"vm146-m4\",\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/update_scripts/logs/stdio\"],[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/update/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/compile/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/base_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/googleurl_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/media_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/net_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/ipc_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/unit_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/app_unittests/logs/stdio\"]],\"builderName\":\"linux\",\"text\":[\"build\",\"successful\"],\"number\":33764,\"times\":[1308849854.9228051,1308851571.8095751],\"blame\":[\"commit-bot@chromium.org\",\"zea@chromium.org\"],\"reason\":\"'commit-bot: 7246011-1' try job\",\"steps\":[{\"name\":\"update_scripts\",\"isFinished\":true,\"text\":[\"update_scripts\"],\"expectations\":[[\"output\",2511,2590.4156624906532]],\"isStarted\":true,\"times\":[1308849854.9245901,1308849871.2794721],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/update_scripts/logs/stdio\"]]},{\"name\":\"update\",\"isFinished\":true,\"step_number\":1,\"expectations\":[[\"output\",171334,80977.140681669116]],\"isStarted\":true,\"times\":[1308849871.2801421,1308850182.5900841],\"text\":[\"update\",\"r90227\",\"webkit r89566\"],\"logs\":[[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/update/logs/stdio\"]]},{\"name\":\"compile\",\"isFinished\":true,\"step_number\":2,\"expectations\":[[\"output\",609812,262952.20078753837]],\"isStarted\":true,\"times\":[1308850182.590662,1308851256.3686621],\"text\":[\"compile\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/compile/logs/stdio\"]]},{\"name\":\"check_deps\",\"isFinished\":true,\"step_number\":3,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,1004.5000000298024]],\"text\":[\"running check_deps\"],\"times\":[1308851256.369287,1308851256.3784921]},{\"name\":\"base_unittests\",\"isFinished\":true,\"step_number\":4,\"expectations\":[[\"output\",89519,89293.026381907985]],\"isStarted\":true,\"times\":[1308851256.3789721,1308851301.409734],\"text\":[\"base_unittests\",\"4 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/base_unittests/logs/stdio\"]]},{\"name\":\"cacheinvalidation_unittests\",\"isFinished\":true,\"step_number\":5,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,111541.69337776881]],\"text\":[\"running cacheinvalidation_unittests\"],\"times\":[1308851301.4103379,1308851301.4258671]},{\"name\":\"crypto_unittests\",\"isFinished\":true,\"step_number\":6,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,7021.9428152140463]],\"text\":[\"running crypto_unittests\"],\"times\":[1308851301.4263389,1308851301.4274051]},{\"name\":\"googleurl_unittests\",\"isFinished\":true,\"step_number\":7,\"expectations\":[[\"output\",6248,6199.9033095503737]],\"isStarted\":true,\"times\":[1308851301.4278769,1308851301.8853691],\"text\":[\"googleurl_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/googleurl_unittests/logs/stdio\"]]},{\"name\":\"gpu_unittests\",\"isFinished\":true,\"step_number\":8,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,1258075.2082577664]],\"text\":[\"running gpu_unittests\"],\"times\":[1308851301.8858449,1308851301.8889451]},{\"name\":\"jingle_unittests\",\"isFinished\":true,\"step_number\":9,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,15411.089811067863]],\"text\":[\"running jingle_unittests\"],\"times\":[1308851301.88942,1308851301.8904469]},{\"name\":\"media_unittests\",\"isFinished\":true,\"step_number\":10,\"expectations\":[[\"output\",33783,33783.285330254592]],\"isStarted\":true,\"times\":[1308851301.8909271,1308851307.313292],\"text\":[\"media_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/media_unittests/logs/stdio\"]]},{\"name\":\"net_unittests\",\"isFinished\":true,\"step_number\":11,\"expectations\":[[\"output\",602476,610870.47057939158]],\"isStarted\":true,\"times\":[1308851307.3138299,1308851457.903456],\"text\":[\"net_unittests\",\"6 disabled\",\"10 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/net_unittests/logs/stdio\"]]},{\"name\":\"printing_unittests\",\"isFinished\":true,\"step_number\":12,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,2895.6842875013626]],\"text\":[\"running printing_unittests\"],\"times\":[1308851457.904284,1308851457.9970601]},{\"name\":\"remoting_unittests\",\"isFinished\":true,\"step_number\":13,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,48394.048918604836]],\"text\":[\"running remoting_unittests\"],\"times\":[1308851457.997617,1308851458.0148129]},{\"name\":\"test_shell_tests\",\"isFinished\":true,\"step_number\":14,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,92080.983470518288]],\"text\":[\"running test_shell_tests\"],\"times\":[1308851458.0151529,1308851458.0190289]},{\"name\":\"safe_browsing_tests\",\"isFinished\":true,\"step_number\":15,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,33255.650947257804]],\"text\":[\"running safe_browsing_tests\"],\"times\":[1308851458.019357,1308851458.020479]},{\"name\":\"ipc_tests\",\"isFinished\":true,\"step_number\":16,\"expectations\":[[\"output\",14041,14041.962809863411]],\"isStarted\":true,\"times\":[1308851458.020822,1308851468.1549511],\"text\":[\"ipc_tests\",\"1 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/ipc_tests/logs/stdio\"]]},{\"name\":\"sync_unit_tests\",\"isFinished\":true,\"step_number\":17,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,72971.331197527135]],\"text\":[\"running sync_unit_tests\"],\"times\":[1308851468.1554821,1308851468.1565371]},{\"name\":\"unit_tests\",\"isFinished\":true,\"step_number\":18,\"expectations\":[[\"output\",561646,551904.20866022527]],\"isStarted\":true,\"times\":[1308851468.1570051,1308851571.0418479],\"text\":[\"unit_tests\",\"7 disabled\",\"5 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/unit_tests/logs/stdio\"]]},{\"name\":\"app_unittests\",\"isFinished\":true,\"step_number\":19,\"expectations\":[[\"output\",4642,4588.7263935494575]],\"isStarted\":true,\"times\":[1308851571.0422161,1308851571.5373001],\"text\":[\"app_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33764/steps/app_unittests/logs/stdio\"]]},{\"name\":\"gfx_unittests\",\"isFinished\":true,\"step_number\":20,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,17756.998772164836]],\"text\":[\"running gfx_unittests\"],\"times\":[1308851571.537642,1308851571.56951]},{\"name\":\"browser_tests\",\"isFinished\":true,\"step_number\":21,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,721055.64309819252]],\"text\":[\"running browser_tests\"],\"times\":[1308851571.5698709,1308851571.6118729]},{\"name\":\"ui_tests\",\"isFinished\":true,\"step_number\":22,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,259718.37039580627]],\"text\":[\"running ui_tests\"],\"times\":[1308851571.612241,1308851571.662678]},{\"name\":\"nacl_ui_tests\",\"isFinished\":true,\"step_number\":23,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,1617.0027862783754]],\"text\":[\"running nacl_ui_tests\"],\"times\":[1308851571.663029,1308851571.7117989]},{\"name\":\"nacl_integration\",\"isFinished\":true,\"step_number\":24,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,490588.19787769165]],\"text\":[\"running nacl_integration\"],\"times\":[1308851571.7121639,1308851571.747324]},{\"name\":\"interactive_ui_tests\",\"isFinished\":true,\"step_number\":25,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,50160.30593901762]],\"text\":[\"running interactive_ui_tests\"],\"times\":[1308851571.7476721,1308851571.7811179]},{\"name\":\"webkit_unit_tests\",\"isFinished\":true,\"step_number\":26,\"results\":[3,null],\"isStarted\":true,\"expectations\":[[\"output\",null,17964.522069294635]],\"text\":[\"running webkit_unit_tests\"],\"times\":[1308851571.781476,1308851571.8092461]}],\"sourceStamp\":{\"timestamp\":\"2011-06-23T17:24:14.889013\",\"hasPatch\":true,\"changes\":[{\"who\":\"commit-bot@chromium.org\",\"when\":1308849854.888906,\"revision\":\"90227\"},{\"who\":\"zea@chromium.org\",\"when\":1308849854.8889401,\"revision\":\"90227\"}],\"job_name\":\"7246011-1\",\"revision\":\"90227\"},\"requests\":[{\"source\":{\"timestamp\":\"2011-06-23T17:24:14.889013\",\"hasPatch\":true,\"changes\":[{\"who\":\"commit-bot@chromium.org\",\"when\":1308849854.888906,\"revision\":\"90227\"},{\"who\":\"zea@chromium.org\",\"when\":1308849854.8889401,\"revision\":\"90227\"}],\"job_name\":\"7246011-1\",\"revision\":\"90227\"},\"submittedAt\":1308849854.889384,\"builds\":[33764],\"builderName\":\"linux\"}],\"changes\":[\"File: \\nAt: Thu 23 Jun 2011 10:24:14\\nChanged By: commit-bot@chromium.org\\nComments: Properties: \\n\\n\\n\",\"File: \\nAt: Thu 23 Jun 2011 10:24:14\\nChanged By: zea@chromium.org\\nComments: Properties: \\n\\n\\n\"],\"properties\":[[\"blamelist\",[\"commit-bot@chromium.org\",\"zea@chromium.org\"],\"Build\"],[\"branch\",null,\"Build\"],[\"buildername\",\"linux\",\"Build\"],[\"buildnumber\",33764,\"Build\"],[\"got_revision\",\"90227\",\"Source\"],[\"got_webkit_revision\",\"89566\",\"Source\"],[\"gtest_filter\",null,\"Factory\"],[\"mastername\",\"tryserver.chromium\",\"master.cfg\"],[\"revision\",\"90227\",\"Build\"],[\"scheduler\",\"try_job_svn\",\"Scheduler\"],[\"slavename\",\"vm146-m4\",\"BuildSlave\"],[\"testfilters\",[\"app_unittests\",\"base_unittests\",\"googleurl_unittests\",\"ipc_tests\",\"media_unittests\",\"net_unittests\",\"printing_tests\",\"unit_tests\"],\"Scheduler\"]]},\"33765\":{\"slave\":\"vm142-m4\",\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/update_scripts/logs/stdio\"],[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/update/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/compile/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/check_deps/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/base_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/cacheinvalidation_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/crypto_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/googleurl_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/gpu_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/jingle_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/media_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/net_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/printing_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/remoting_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/test_shell_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/safe_browsing_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/ipc_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/sync_unit_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/unit_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/app_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/gfx_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/browser_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/ui_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/nacl_ui_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/nacl_integration/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/interactive_ui_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/webkit_unit_tests/logs/stdio\"]],\"builderName\":\"linux\",\"text\":[\"build\",\"successful\"],\"number\":33765,\"times\":[1308849935.320405,1308854455.382549],\"blame\":[\"rharrison@chromium.org\"],\"reason\":\"'rharrison: keyboard_animation#f7291' try job\",\"steps\":[{\"name\":\"update_scripts\",\"isFinished\":true,\"text\":[\"update_scripts\"],\"expectations\":[[\"output\",3848,2590.4156624906532]],\"isStarted\":true,\"times\":[1308849935.3224399,1308849947.4356599],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/update_scripts/logs/stdio\"]]},{\"name\":\"update\",\"isFinished\":true,\"step_number\":1,\"expectations\":[[\"output\",500333,80977.140681669116]],\"isStarted\":true,\"times\":[1308849947.4367371,1308850181.3491001],\"text\":[\"update\",\"r90030\",\"webkit r89412\"],\"logs\":[[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/update/logs/stdio\"]]},{\"name\":\"compile\",\"isFinished\":true,\"step_number\":2,\"expectations\":[[\"output\",1022634,262952.20078753837]],\"isStarted\":true,\"times\":[1308850181.3497031,1308851452.282315],\"text\":[\"compile\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/compile/logs/stdio\"]]},{\"name\":\"check_deps\",\"isFinished\":true,\"step_number\":3,\"expectations\":[[\"output\",1004,1004.5000000298024]],\"isStarted\":true,\"times\":[1308851452.2830131,1308851515.1236219],\"text\":[\"check_deps\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/check_deps/logs/stdio\"]]},{\"name\":\"base_unittests\",\"isFinished\":true,\"step_number\":4,\"expectations\":[[\"output\",89223,89293.026381907985]],\"isStarted\":true,\"times\":[1308851515.1242559,1308851560.8960021],\"text\":[\"base_unittests\",\"4 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/base_unittests/logs/stdio\"]]},{\"name\":\"cacheinvalidation_unittests\",\"isFinished\":true,\"step_number\":5,\"expectations\":[[\"output\",112437,111541.69337776881]],\"isStarted\":true,\"times\":[1308851560.8963549,1308851561.3928299],\"text\":[\"cacheinvalidation_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/cacheinvalidation_unittests/logs/stdio\"]]},{\"name\":\"crypto_unittests\",\"isFinished\":true,\"step_number\":6,\"expectations\":[[\"output\",7021,7021.9428152140463]],\"isStarted\":true,\"times\":[1308851561.393364,1308851562.411242],\"text\":[\"crypto_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/crypto_unittests/logs/stdio\"]]},{\"name\":\"googleurl_unittests\",\"isFinished\":true,\"step_number\":7,\"expectations\":[[\"output\",6183,6199.9033095503737]],\"isStarted\":true,\"times\":[1308851562.4118071,1308851562.850893],\"text\":[\"googleurl_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/googleurl_unittests/logs/stdio\"]]},{\"name\":\"gpu_unittests\",\"isFinished\":true,\"step_number\":8,\"expectations\":[[\"output\",1258071,1258075.2082577664]],\"isStarted\":true,\"times\":[1308851562.8514099,1308851575.5080669],\"text\":[\"gpu_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/gpu_unittests/logs/stdio\"]]},{\"name\":\"jingle_unittests\",\"isFinished\":true,\"step_number\":9,\"expectations\":[[\"output\",15410,15411.089811067863]],\"isStarted\":true,\"times\":[1308851575.508486,1308851582.5568571],\"text\":[\"jingle_unittests\",\"1 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/jingle_unittests/logs/stdio\"]]},{\"name\":\"media_unittests\",\"isFinished\":true,\"step_number\":10,\"expectations\":[[\"output\",33794,33783.285330254592]],\"isStarted\":true,\"times\":[1308851582.557375,1308851587.810832],\"text\":[\"media_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/media_unittests/logs/stdio\"]]},{\"name\":\"net_unittests\",\"isFinished\":true,\"step_number\":11,\"expectations\":[[\"output\",605624,610870.47057939158]],\"isStarted\":true,\"times\":[1308851587.811388,1308851735.2036719],\"text\":[\"net_unittests\",\"6 disabled\",\"10 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/net_unittests/logs/stdio\"]]},{\"name\":\"printing_unittests\",\"isFinished\":true,\"step_number\":12,\"expectations\":[[\"output\",2895,2895.6842875013626]],\"isStarted\":true,\"times\":[1308851735.204241,1308851735.875823],\"text\":[\"printing_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/printing_unittests/logs/stdio\"]]},{\"name\":\"remoting_unittests\",\"isFinished\":true,\"step_number\":13,\"expectations\":[[\"output\",48408,48394.048918604836]],\"isStarted\":true,\"times\":[1308851735.8763411,1308851741.0884061],\"text\":[\"remoting_unittests\",\"4 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/remoting_unittests/logs/stdio\"]]},{\"name\":\"test_shell_tests\",\"isFinished\":true,\"step_number\":14,\"expectations\":[[\"output\",91504,92080.983470518288]],\"isStarted\":true,\"times\":[1308851741.0887561,1308851810.4108191],\"text\":[\"test_shell_tests\",\"1 disabled\",\"2 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/test_shell_tests/logs/stdio\"]]},{\"name\":\"safe_browsing_tests\",\"isFinished\":true,\"step_number\":15,\"expectations\":[[\"output\",33525,33255.650947257804]],\"isStarted\":true,\"times\":[1308851810.4114261,1308851834.4310119],\"text\":[\"safe_browsing_tests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/safe_browsing_tests/logs/stdio\"]]},{\"name\":\"ipc_tests\",\"isFinished\":true,\"step_number\":16,\"expectations\":[[\"output\",14056,14041.962809863411]],\"isStarted\":true,\"times\":[1308851834.4313431,1308851846.294687],\"text\":[\"ipc_tests\",\"1 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/ipc_tests/logs/stdio\"]]},{\"name\":\"sync_unit_tests\",\"isFinished\":true,\"step_number\":17,\"expectations\":[[\"output\",73063,72971.331197527135]],\"isStarted\":true,\"times\":[1308851846.295229,1308851858.0083971],\"text\":[\"sync_unit_tests\",\"2 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/sync_unit_tests/logs/stdio\"]]},{\"name\":\"unit_tests\",\"isFinished\":true,\"step_number\":18,\"expectations\":[[\"output\",541523,551904.20866022527]],\"isStarted\":true,\"times\":[1308851858.0087559,1308851959.226023],\"text\":[\"unit_tests\",\"7 disabled\",\"5 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/unit_tests/logs/stdio\"]]},{\"name\":\"app_unittests\",\"isFinished\":true,\"step_number\":19,\"expectations\":[[\"output\",4640,4588.7263935494575]],\"isStarted\":true,\"times\":[1308851959.2275579,1308851959.8142891],\"text\":[\"app_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/app_unittests/logs/stdio\"]]},{\"name\":\"gfx_unittests\",\"isFinished\":true,\"step_number\":20,\"expectations\":[[\"output\",17739,17756.998772164836]],\"isStarted\":true,\"times\":[1308851959.8148329,1308851979.3257079],\"text\":[\"gfx_unittests\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/gfx_unittests/logs/stdio\"]]},{\"name\":\"browser_tests\",\"isFinished\":true,\"step_number\":21,\"expectations\":[[\"output\",719773,721055.64309819252]],\"isStarted\":true,\"times\":[1308851979.3262489,1308853428.4730439],\"text\":[\"browser_tests\",\"22 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/browser_tests/logs/stdio\"]]},{\"name\":\"ui_tests\",\"isFinished\":true,\"step_number\":22,\"expectations\":[[\"output\",255589,259718.37039580627]],\"isStarted\":true,\"times\":[1308853428.4736669,1308854064.450928],\"text\":[\"ui_tests\",\"25 disabled\",\"67 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/ui_tests/logs/stdio\"]]},{\"name\":\"nacl_ui_tests\",\"isFinished\":true,\"step_number\":23,\"expectations\":[[\"output\",1593,1617.0027862783754]],\"isStarted\":true,\"times\":[1308854064.451407,1308854069.178915],\"text\":[\"nacl_ui_tests\",\"8 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/nacl_ui_tests/logs/stdio\"]]},{\"name\":\"nacl_integration\",\"isFinished\":true,\"step_number\":24,\"expectations\":[[\"output\",487348,490588.19787769165]],\"isStarted\":true,\"times\":[1308854069.1793621,1308854281.6949251],\"text\":[\"nacl_integration\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/nacl_integration/logs/stdio\"]]},{\"name\":\"interactive_ui_tests\",\"isFinished\":true,\"step_number\":25,\"expectations\":[[\"output\",49989,50160.30593901762]],\"isStarted\":true,\"times\":[1308854281.695431,1308854451.916374],\"text\":[\"interactive_ui_tests\",\"9 flaky\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/interactive_ui_tests/logs/stdio\"]]},{\"name\":\"webkit_unit_tests\",\"isFinished\":true,\"step_number\":26,\"expectations\":[[\"output\",17963,17964.522069294635]],\"isStarted\":true,\"times\":[1308854451.91699,1308854455.382134],\"text\":[\"webkit_unit_tests\",\"1 disabled\"],\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33765/steps/webkit_unit_tests/logs/stdio\"]]}],\"sourceStamp\":{\"changes\":[{\"who\":\"rharrison@chromium.org\",\"when\":1308849934.8159909}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:25:35.119070\",\"patchset\":5,\"issue\":7247007,\"job_name\":\"keyboard_animation#f7291\",\"revision\":90030},\"requests\":[{\"source\":{\"changes\":[{\"who\":\"rharrison@chromium.org\",\"when\":1308849934.8159909}],\"hasPatch\":true,\"timestamp\":\"2011-06-23T17:25:35.119070\",\"patchset\":5,\"issue\":7247007,\"job_name\":\"keyboard_animation#f7291\",\"revision\":90030},\"submittedAt\":1308849935.140455,\"builds\":[33765],\"builderName\":\"linux\"}],\"changes\":[\"File: \\nAt: Thu 23 Jun 2011 10:25:34\\nChanged By: rharrison@chromium.org\\nComments: Properties: \\n\\n\\n\"],\"properties\":[[\"blamelist\",[\"rharrison@chromium.org\"],\"Build\"],[\"branch\",null,\"Build\"],[\"buildername\",\"linux\",\"Build\"],[\"buildnumber\",33765,\"Build\"],[\"got_revision\",\"90030\",\"Source\"],[\"got_webkit_revision\",\"89412\",\"Source\"],[\"gtest_filter\",null,\"Factory\"],[\"mastername\",\"tryserver.chromium\",\"master.cfg\"],[\"revision\",90030,\"Build\"],[\"scheduler\",\"try_job_svn\",\"Scheduler\"],[\"slavename\",\"vm142-m4\",\"BuildSlave\"]]},\"33768\":{\"slave\":\"vm151-m4\",\"logs\":[[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/update_scripts/logs/stdio\"],[\"patch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/update/logs/patch\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/update/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/compile/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/check_deps/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/base_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/cacheinvalidation_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/crypto_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/googleurl_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/gpu_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/jingle_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/media_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/net_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/printing_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/remoting_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/test_shell_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/safe_browsing_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ipc_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/sync_unit_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/unit_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/app_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/gfx_unittests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/browser_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/stdio\"],[\"EnableAppModeTest\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/EnableAppModeTest\"],[\"Assertion\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Assertion\"],[\"CloseBrowserWindow\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CloseBrowserWindow\"],[\"CloseTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CloseTab\"],[\"DuplicateTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DuplicateTab\"],[\"FindInPage\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/FindInPage\"],[\"Home\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Home\"],[\"IncognitoWindow\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/IncognitoWindow\"],[\"Navigate\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Navigate\"],[\"OpenBrowserWindow\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/OpenBrowserWindow\"],[\"OpenCloseBrowserWindowWithAccelerator\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/OpenCloseBrowserWindowWithAccelerator\"],[\"OpenNewTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/OpenNewTab\"],[\"RestoreTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoreTab\"],[\"SelectTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SelectTab\"],[\"ShowBookmarkBar\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ShowBookmarkBar\"],[\"ShowDownloads\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ShowDownloads\"],[\"ShowHistory\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ShowHistory\"],[\"LargeSnapshot\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/LargeSnapshot\"],[\"AcceleratorDownloads\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/AcceleratorDownloads\"],[\"AcceleratorExtensions\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/AcceleratorExtensions\"],[\"AcceleratorHistory\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/AcceleratorHistory\"],[\"AcceleratorNewTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/AcceleratorNewTab\"],[\"ActivateTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ActivateTab\"],[\"Cookies\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Cookies\"],[\"GetActiveTabIndex\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetActiveTabIndex\"],[\"GetBrowserWindow\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetBrowserWindow\"],[\"GetBrowserWindowCount\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetBrowserWindowCount\"],[\"GetCurrentURL\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetCurrentURL\"],[\"GetTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetTab\"],[\"GetTabCount\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetTabCount\"],[\"GoBackForward\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GoBackForward\"],[\"NavigateToURL\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NavigateToURL\"],[\"NavigateToURLAsync\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NavigateToURLAsync\"],[\"GetActiveTabIndex\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetActiveTabIndex\"],[\"GetTabTitle\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetTabTitle\"],[\"FrameDocumentCanBeAccessed\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/FrameDocumentCanBeAccessed\"],[\"BooleanValueIsEchoedByDomAutomationController\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BooleanValueIsEchoedByDomAutomationController\"],[\"NumberValueIsEchoedByDomAutomationController\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NumberValueIsEchoedByDomAutomationController\"],[\"StringValueIsEchoedByDomAutomationController\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/StringValueIsEchoedByDomAutomationController\"],[\"TestLifetimeOfDomAutomationController\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TestLifetimeOfDomAutomationController\"],[\"AppendTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/AppendTab\"],[\"WindowGetViewBounds\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WindowGetViewBounds\"],[\"BookmarksLoaded\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BookmarksLoaded\"],[\"CommandAgainGoesBackToBookmarksTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CommandAgainGoesBackToBookmarksTab\"],[\"CommandOpensBookmarksTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CommandOpensBookmarksTab\"],[\"TwoCommandsOneTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TwoCommandsOneTab\"],[\"TestEncodingAliasMapping\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TestEncodingAliasMapping\"],[\"PosixSessionEnd\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/PosixSessionEnd\"],[\"CheckFails\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CheckFails\"],[\"ReuseBrowserInstanceWhenOpeningFile\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ReuseBrowserInstanceWhenOpeningFile\"],[\"SecondLaunch\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SecondLaunch\"],[\"SecondLaunchFromIncognitoWithNormalUrl\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SecondLaunchFromIncognitoWithNormalUrl\"],[\"SecondLaunchWithIncognitoUrl\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SecondLaunchWithIncognitoUrl\"],[\"Crash\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Crash\"],[\"EventLayoutTests\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/EventLayoutTests\"],[\"LocalStorageLayoutTests\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/LocalStorageLayoutTests\"],[\"RootLayoutTests\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RootLayoutTests\"],[\"SessionStorageLayoutTests\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SessionStorageLayoutTests\"],[\"DefaultPluginLoadTest\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DefaultPluginLoadTest\"],[\"File\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/File\"],[\"EmptyDirAfterClear\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/EmptyDirAfterClear\"],[\"EmptyDirAfterGet\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/EmptyDirAfterGet\"],[\"DOMCorePerf\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DOMCorePerf\"],[\"JSLibPerf\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/JSLibPerf\"],[\"DOMCorePerf\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DOMCorePerf\"],[\"JSLibPerf\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/JSLibPerf\"],[\"DNSError_Basic\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DNSError_Basic\"],[\"DNSError_GoBack1\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DNSError_GoBack1\"],[\"IFrameDNSError_Basic\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/IFrameDNSError_Basic\"],[\"IFrameDNSError_GoBack\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/IFrameDNSError_GoBack\"],[\"IFrameDNSError_GoBackAndForward\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/IFrameDNSError_GoBackAndForward\"],[\"Page404\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Page404\"],[\"EnableDisable\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/EnableDisable\"],[\"NoSuchExtension\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NoSuchExtension\"],[\"Uninstall\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Uninstall\"],[\"UITestCanLaunchWithOSMesa\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/UITestCanLaunchWithOSMesa\"],[\"Crash\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Crash\"],[\"ConsiderRedirectAfterGestureAsUserInitiated\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ConsiderRedirectAfterGestureAsUserInitiated\"],[\"ConsiderSlowRedirectAsUserInitiated\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ConsiderSlowRedirectAsUserInitiated\"],[\"VerifyHistoryLength1\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/VerifyHistoryLength1\"],[\"VerifyHistoryLength2\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/VerifyHistoryLength2\"],[\"VerifyHistoryLength3\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/VerifyHistoryLength3\"],[\"Crash\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Crash\"],[\"InEmptyFrame\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/InEmptyFrame\"],[\"AnimatedGIFs\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/AnimatedGIFs\"],[\"EnableKioskModeTest\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/EnableKioskModeTest\"],[\"NPObjectReleasedOnDestruction\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NPObjectReleasedOnDestruction\"],[\"NPObjectSetException\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NPObjectSetException\"],[\"UnloadNoCrash\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/UnloadNoCrash\"],[\"TestStart\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TestStart\"],[\"TestStart\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TestStart\"],[\"TestStart\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TestStart\"],[\"CancelRedundantAuths\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CancelRedundantAuths\"],[\"SupplyRedundantAuths\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SupplyRedundantAuths\"],[\"TestBasicAuth\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TestBasicAuth\"],[\"TestDigestAuth\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TestDigestAuth\"],[\"TestTwoAuths\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TestTwoAuths\"],[\"VideoBearSilentTheora\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/VideoBearSilentTheora\"],[\"VideoBearSilentWebm\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/VideoBearSilentWebm\"],[\"VideoBearTheora\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/VideoBearTheora\"],[\"VideoBearWav\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/VideoBearWav\"],[\"VideoBearWebm\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/VideoBearWebm\"],[\"CloseRenderersNormally\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CloseRenderersNormally\"],[\"LoadAllBlockedPlugins\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/LoadAllBlockedPlugins\"],[\"PrivateEnabled\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/PrivateEnabled\"],[\"Arguments\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Arguments\"],[\"GetJavaScriptURL\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetJavaScriptURL\"],[\"GetJavaScriptURL2\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetJavaScriptURL2\"],[\"GetURL\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetURL\"],[\"ManyPlugins\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ManyPlugins\"],[\"NPObjectIdentity\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NPObjectIdentity\"],[\"NPObjectProxy\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NPObjectProxy\"],[\"PluginThreadAsyncCall\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/PluginThreadAsyncCall\"],[\"PrivateDisabled\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/PrivateDisabled\"],[\"ScheduleTimer\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ScheduleTimer\"],[\"ClickToPlay\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ClickToPlay\"],[\"GetURLRequestFailWrite\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/GetURLRequestFailWrite\"],[\"PluginReferrerTest\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/PluginReferrerTest\"],[\"SelfDeletePluginInNewStream\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SelfDeletePluginInNewStream\"],[\"BasicNamedInterface\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BasicNamedInterface\"],[\"NavBeforeNTPCommits\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NavBeforeNTPCommits\"],[\"ChromeHangInNTP\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ChromeHangInNTP\"],[\"UpdateUserPrefsVersion\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/UpdateUserPrefsVersion\"],[\"NoStartupWindowBasicTest\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NoStartupWindowBasicTest\"],[\"LoadOptionsByURL\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/LoadOptionsByURL\"],[\"NavBarCheck\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NavBarCheck\"],[\"Buffer\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Buffer\"],[\"Broker\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Broker\"],[\"Buffer\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Buffer\"],[\"CharSet\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CharSet\"],[\"CursorControl\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CursorControl\"],[\"FileRef\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/FileRef\"],[\"Graphics2D\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Graphics2D\"],[\"ImageData\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ImageData\"],[\"PaintAggregator\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/PaintAggregator\"],[\"PostMessage\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/PostMessage\"],[\"Scrollbar\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Scrollbar\"],[\"Transport\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Transport\"],[\"URLLoader\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/URLLoader\"],[\"URLUtil\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/URLUtil\"],[\"Var\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Var\"],[\"VarDeprecated\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/VarDeprecated\"],[\"LoadPrintPreviewByURL\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/LoadPrintPreviewByURL\"],[\"PrintCommandDisabled\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/PrintCommandDisabled\"],[\"CreateChecksCompatibilitySocket\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CreateChecksCompatibilitySocket\"],[\"CreateFailsWithExistingBrowser\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CreateFailsWithExistingBrowser\"],[\"NotifyOtherProcessHostChanged\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NotifyOtherProcessHostChanged\"],[\"NotifyOtherProcessNoSuicide\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NotifyOtherProcessNoSuicide\"],[\"NotifyOtherProcessOrCreate_BadCookie\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NotifyOtherProcessOrCreate_BadCookie\"],[\"NotifyOtherProcessSuccess\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NotifyOtherProcessSuccess\"],[\"Client\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Client\"],[\"ClientCancelled\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ClientCancelled\"],[\"ClientFragments\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ClientFragments\"],[\"ClientServerServer\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ClientServerServer\"],[\"Server\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Server\"],[\"ServerReference\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ServerReference\"],[\"Crash\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Crash\"],[\"TestDoubleReload\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TestDoubleReload\"],[\"TestLoginAfterRepost\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TestLoginAfterRepost\"],[\"ContentDispositionEmpty\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ContentDispositionEmpty\"],[\"ContentDispositionInline\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ContentDispositionInline\"],[\"CrossOriginRedirectBlocked\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CrossOriginRedirectBlocked\"],[\"CrossSiteFailedRequest\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CrossSiteFailedRequest\"],[\"CrossSiteImmediateLoadOnunloadCookie\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CrossSiteImmediateLoadOnunloadCookie\"],[\"CrossSiteNavigationErrorPage\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CrossSiteNavigationErrorPage\"],[\"CrossSiteNavigationNonBuffered\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CrossSiteNavigationNonBuffered\"],[\"CrossSiteNoUnloadOn204\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CrossSiteNoUnloadOn204\"],[\"CrossSiteOnunloadCookie\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CrossSiteOnunloadCookie\"],[\"DoNotSniffHTMLFromImageGIF\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DoNotSniffHTMLFromImageGIF\"],[\"DoNotSniffHTMLFromTextPlain\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DoNotSniffHTMLFromTextPlain\"],[\"RespectNoSniffDirective\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RespectNoSniffDirective\"],[\"SniffHTMLWithNoContentType\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SniffHTMLWithNoContentType\"],[\"SniffNoContentTypeNoData\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SniffNoContentTypeNoData\"],[\"RunInBackgroundBasicTest\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RunInBackgroundBasicTest\"],[\"DisallowFileUrlUniversalAccessTest\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DisallowFileUrlUniversalAccessTest\"],[\"BasicBackForward\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BasicBackForward\"],[\"FragmentBackForward\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/FragmentBackForward\"],[\"FrameBackForward\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/FrameBackForward\"],[\"LocationChangeInSubframe\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/LocationChangeInSubframe\"],[\"Basic\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Basic\"],[\"ClosedTabStaysClosed\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ClosedTabStaysClosed\"],[\"DontRestorePrintPreviewTabTest\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DontRestorePrintPreviewTabTest\"],[\"NormalAndPopup\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/NormalAndPopup\"],[\"RestoresCrossSiteForwardAndBackwardNavs\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoresCrossSiteForwardAndBackwardNavs\"],[\"RestoresForwardAndBackwardNavs\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoresForwardAndBackwardNavs\"],[\"TwoTabsSecondSelected\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TwoTabsSecondSelected\"],[\"TwoWindowsCloseOneRestoreOnlyOne\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/TwoWindowsCloseOneRestoreOnlyOne\"],[\"Perf\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Perf\"],[\"Perf\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Perf\"],[\"Basic\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Basic\"],[\"BasicRestoreFromClosedWindow\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BasicRestoreFromClosedWindow\"],[\"DontLoadRestoredTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DontLoadRestoredTab\"],[\"MiddleTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/MiddleTab\"],[\"RestoreCrossSiteWithExistingSiteInstance\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoreCrossSiteWithExistingSiteInstance\"],[\"RestoreIntoSameWindow\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoreIntoSameWindow\"],[\"RestoreTabWithSpecialURL\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoreTabWithSpecialURL\"],[\"RestoreTabWithSpecialURLOnBack\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoreTabWithSpecialURLOnBack\"],[\"RestoreToDifferentWindow\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoreToDifferentWindow\"],[\"RestoreWindow\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoreWindow\"],[\"RestoreWindowAndTab\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoreWindowAndTab\"],[\"RestoreWithExistingSiteInstance\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/RestoreWithExistingSiteInstance\"],[\"MediaUILayoutTest\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/MediaUILayoutTest\"],[\"BrowserCloseBeforeUnloadCancel\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseBeforeUnloadCancel\"],[\"BrowserCloseBeforeUnloadOK\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseBeforeUnloadOK\"],[\"BrowserCloseInfiniteBeforeUnload\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseInfiniteBeforeUnload\"],[\"BrowserCloseInfiniteBeforeUnloadAlert\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseInfiniteBeforeUnloadAlert\"],[\"BrowserCloseInfiniteUnload\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseInfiniteUnload\"],[\"BrowserCloseInfiniteUnloadAlert\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseInfiniteUnloadAlert\"],[\"BrowserCloseNoUnloadListeners\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseNoUnloadListeners\"],[\"BrowserCloseTabWhenOtherTabHasListener\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseTabWhenOtherTabHasListener\"],[\"BrowserCloseTwoSecondBeforeUnload\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseTwoSecondBeforeUnload\"],[\"BrowserCloseTwoSecondBeforeUnloadAlert\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseTwoSecondBeforeUnloadAlert\"],[\"BrowserCloseTwoSecondUnloadAlert\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/BrowserCloseTwoSecondUnloadAlert\"],[\"CrossSiteInfiniteBeforeUnloadSync\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CrossSiteInfiniteBeforeUnloadSync\"],[\"CrossSiteInfiniteUnloadSync\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/CrossSiteInfiniteUnloadSync\"],[\"Perf\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Perf\"],[\"Perf\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Perf\"],[\"DoesBrowserConsumeViewSourcePrefix\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/DoesBrowserConsumeViewSourcePrefix\"],[\"ViewSourceInMenuEnabledOnANormalPage\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/ViewSourceInMenuEnabledOnANormalPage\"],[\"WindowOpenClose\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WindowOpenClose\"],[\"AsyncOperations\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/AsyncOperations\"],[\"FileEntryToURISync\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/FileEntryToURISync\"],[\"Persistent\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Persistent\"],[\"SyncOperations\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SyncOperations\"],[\"SyncTemporary\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SyncTemporary\"],[\"Temporary\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/Temporary\"],[\"MultipleSharedWorkers\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/MultipleSharedWorkers\"],[\"MultipleWorkers\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/MultipleWorkers\"],[\"SharedWorkerHttpAuth\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SharedWorkerHttpAuth\"],[\"SingleSharedWorker\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SingleSharedWorker\"],[\"SingleWorker\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/SingleWorker\"],[\"StressJSExecution\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/StressJSExecution\"],[\"UseMachineStack\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/UseMachineStack\"],[\"WorkerCall\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerCall\"],[\"WorkerCloseFast\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerCloseFast\"],[\"WorkerContextGc\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerContextGc\"],[\"WorkerContextMultiPort\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerContextMultiPort\"],[\"WorkerEventListener\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerEventListener\"],[\"WorkerGC\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerGC\"],[\"WorkerHttpAuth\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerHttpAuth\"],[\"WorkerInit\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerInit\"],[\"WorkerLocation\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerLocation\"],[\"WorkerMessagePort\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerMessagePort\"],[\"WorkerMessagePortGC\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerMessagePortGC\"],[\"WorkerMultiPort\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerMultiPort\"],[\"WorkerReplaceGlobalConstructor\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerReplaceGlobalConstructor\"],[\"WorkerReplaceSelf\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerReplaceSelf\"],[\"WorkerScriptError\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerScriptError\"],[\"WorkerTerminate\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerTerminate\"],[\"WorkerTimeout\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/ui_tests/logs/WorkerTimeout\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/nacl_ui_tests/logs/stdio\"],[\"stdio\",\"http://build.chromium.org/p/tryserver.chromium/builders/linux/builds/33768/steps/nacl_integration/logs/stdio\"],[\"stdio\",\&q