anchor.diff:    /// However, older browsers might not support IndexedDB.
     @experimental
     factory MoorWebStorage.indexedDb(String name,
  -      {bool migrateFromLocalStorage}) = _IndexedDbStorage;
  +      {bool migrateFromLocalStorage, bool inWebWorker}) = _IndexedDbStorage;
   
     /// Uses [MoorWebStorage.indexedDb] if the current browser supports it.
     /// Otherwise, falls back to the local storage based implementation.
  -  factory MoorWebStorage.indexedDbIfSupported(String name) {
  -    return supportsIndexedDb
  -        ? MoorWebStorage.indexedDb(name)
  +  factory MoorWebStorage.indexedDbIfSupported(String name,
  +      {bool inWebWorker = false}) {
  +    return supportsIndexedDb(inWebWorker: inWebWorker)
  +        ? MoorWebStorage.indexedDb(name, inWebWorker: inWebWorker)
           : MoorWebStorage(name);
     }
   
     /// Attempts to check whether the current browser supports the
     /// [MoorWebStorage.indexedDb] storage implementation.
  -  static bool get supportsIndexedDb =>
  -      IdbFactory.supported && context.hasProperty('FileReader');
  +  static bool supportsIndexedDb({bool inWebWorker = false}) {
  +    var isIndexedDbSupported = false;
  +    if (inWebWorker && WorkerGlobalScope.instance.indexedDB != null) {
  +      isIndexedDbSupported = true;
  +    } else {
  +      try {
  +        isIndexedDbSupported = IdbFactory.supported;
  +      } catch (error) {
  +        isIndexedDbSupported = false;
  +      }
  +    }
  +    return isIndexedDbSupported && context.hasProperty('FileReader');
  +  }
   }
   
   abstract class _CustomSchemaVersionSave implements MoorWebStorage {
  
positive.code: 
    final String name;
    final bool migrateFromLocalStorage;
  
    Database _database;
  
    _IndexedDbStorage(this.name, {this.migrateFromLocalStorage = true});
  
    @override
    Future<void> open() async {
      var wasCreated = false;
  
      _database = await window.indexedDB.open(
        _objectStoreName,
        version: 1,
        onUpgradeNeeded: (event) {
  
negative.code:   @override
    Future<Uint8List> restore() async {
      final transaction =
      _database.transactionStore(_objectStoreName, 'readonly');
      final store = transaction.objectStore(_objectStoreName);
  
      final result = await store.getObject(name) as Blob /*?*/;
  