- Electron version:
  1.3.3
- Operating system:
  OSX El Capitan

``` javascript
      function cbError(e) {
         console.error('failure', e);
      }

      navigator.webkitPersistentStorage.requestQuota( 10 * 1024* 1024, function(granted) {
        webkitRequestFileSystem(PERSISTENT, granted, cb, cbError);
      },
      cbError)
```

webkitRequestFileSystem is failing with:

```
FileError {code: 2, name: "SecurityError", message: "It was determined that certain files are unsafe fo… too many calls are being made on file resources."}code: 2message: "It was determined that certain files are unsafe for access within a Web application, or that too many calls are being made on file resources."name: "SecurityError"__proto__: FileError
```

This page is being served from a custom:// scheme if that matters.

atom/browser/atom_browser_client.cc
int render_process_id,
    const base::Callback<void(bool, bool)>& callback) {
  content::WebContents* web_contents =
      WebContentsPreferences::GetWebContentsFromProcessID(render_process_id);
  if (!web_contents) {
    callback.Run(false, false);
    return;
  }
  auto permission_helper =
      WebContentsPermissionHelper::FromWebContents(web_contents);
  if (!permission_helper) {
    callback.Run(false, false);
    return;
  }
  permission_helper->RequestWebNotificationPermission(
      base::Bind(callback, web_contents->IsAudioMuted()));
}
void AtomBrowserClient::RenderProcessHostDestroyed(
    content::RenderProcessHost* host) {
  int process_id = host->GetID();
  for (const auto& entry : pending_processes_) {
    if (entry.first == process_id || entry.second == process_id) {
      pending_processes_.erase(entry.first);
      break;
    }
  }
}
}