'Iterator returning a list for each entry in history.
We store all the download events in an array (choosing this over visits
since there are likely to be less of them). We later interleave them with
visit events to get an overall correct time order.
Yields:
a list of attributes for each entry'

def Parse(self):

    query_iter = itertools.chain(self.Query(self.DOWNLOADS_QUERY), self.Query(self.DOWNLOADS_QUERY_2))
    results = []
    for (timestamp, url, path, received_bytes, total_bytes) in query_iter:
        timestamp = self.ConvertTimestamp(timestamp)
        results.append((timestamp, 'CHROME_DOWNLOAD', url, path, received_bytes, total_bytes))
    for (timestamp, url, title, typed_count) in self.Query(self.VISITS_QUERY):
        timestamp = self.ConvertTimestamp(timestamp)
        results.append((timestamp, 'CHROME_VISIT', url, title, typed_count, ''))
    results.sort(key=(lambda it: it[0]))
    for it in results:
        (yield it)
