diff --git a/assets/javascripts/app/db.coffee b/assets/javascripts/app/db.coffee
index 04bace5e..7892ec44 100644
--- a/assets/javascripts/app/db.coffee
+++ b/assets/javascripts/app/db.coffee
@@ -109,16 +109,14 @@ class app.DB
versions: (docs, fn) ->
@db (db) ->
- result = {}
-
unless db
- result[doc.slug] = false for doc in docs
- fn(result)
+ fn(false)
return
txn = db.transaction ['docs'], 'readonly'
txn.oncomplete = -> fn(result)
store = txn.objectStore('docs')
+ result = {}
docs.forEach (doc) ->
req = store.get(doc.slug)
diff --git a/assets/javascripts/collections/docs.coffee b/assets/javascripts/collections/docs.coffee
index 42c5a2e0..4e19f6d6 100644
--- a/assets/javascripts/collections/docs.coffee
+++ b/assets/javascripts/collections/docs.coffee
@@ -37,6 +37,7 @@ class app.collections.Docs extends app.Collection
getDownloadStatuses: (callback) ->
app.db.versions @models, (statuses) ->
- for key, value of statuses
- statuses[key] = downloaded: !!value, version: value
+ if statuses
+ for key, value of statuses
+ statuses[key] = downloaded: !!value, version: value
callback(statuses)
diff --git a/assets/javascripts/templates/error_tmpl.coffee b/assets/javascripts/templates/error_tmpl.coffee
index ce7ad5da..11941c03 100644
--- a/assets/javascripts/templates/error_tmpl.coffee
+++ b/assets/javascripts/templates/error_tmpl.coffee
@@ -22,6 +22,11 @@ app.templates.bootError = ->
""" Check your Internet connection and try reloading.
If you keep seeing this, you're likely behind a proxy or firewall that blocks cross-domain requests. """
+app.templates.offlineError = ->
+ error """ Your browser is unsupported, sorry. """,
+ """ DevDocs uses IndexedDB to cache complete documentations for offline access.
+ Unfortunately your browser either doesn't support IndexedDB, or its implementation is buggy. """
+
app.templates.unsupportedBrowser = """