Error "No se puede llamar al método 'abierto' de indefinido" al usar indexedDB.open

Soy nuevo en IndexedDB y estoy siguiendo esta guíaIndexedDB Tutorial Simplemente estoy tratando de crear una base de datos y luego ser capaz de agregar algunas entradas. Esto es lo que tengo hasta ahora.

var db = window.indexedDB.open('FriendDB', 'My Friends!');

if (db.version != '1') {
    // User's first visit, initialize database (name, key, auto increment).
    db.createObjectStore('Friends', 'id', true);
    db.setVersion('1');
} else {
  // DB already initialized.
}

var store = db.openObjectStore('Friends');
var user = store.put({name: 'Eric', gender: 'male', likes: 'html5'});

En mi consola me aparece el error "No se puede llamar al método 'abierto' de indefinido" ¿cómo puedo hacer que esto funcione? Además, si hay un mejor recurso en línea que me ayudaría porque parece que no puedo encontrar nada sobre el tema de IndexedDB para un novato.

Respuestas a la pregunta(2)

Su respuesta a la pregunta