avoid IndexError

in some cases we receive this event from the browser:
{"method":"ServiceWorker.workerVersionUpdated","params":{"versions":[]}}
This commit is contained in:
Noah Levitt 2018-12-13 15:49:38 -08:00
parent b577fe3c36
commit 15870e6010
2 changed files with 8 additions and 6 deletions

View File

@ -278,11 +278,13 @@ class BrozzlerWorker:
def _on_service_worker_version_updated(chrome_msg):
# https://github.com/internetarchive/brozzler/issues/140
self.logger.trace('%r', chrome_msg)
url = chrome_msg.get('params', {}).get('versions', [{}])[0].get('scriptURL')
if url not in sw_fetched:
self.logger.info('fetching service worker script %s', url)
self._fetch_url(site, url)
sw_fetched.add(url)
if chrome_msg.get('params', {}).get('versions'):
url = chrome_msg.get('params', {}).get('versions')[0]\
.get('scriptURL')
if url and url not in sw_fetched:
self.logger.info('fetching service worker script %s', url)
self._fetch_url(site, url)
sw_fetched.add(url)
if not browser.is_running():
browser.start(

View File

@ -32,7 +32,7 @@ def find_package_data(package):
setuptools.setup(
name='brozzler',
version='1.5.dev316',
version='1.5.dev317',
description='Distributed web crawling with browsers',
url='https://github.com/internetarchive/brozzler',
author='Noah Levitt',