Detect if ie10+ and edge is using inPrivate mode
Instead of blacklisting why not whitelist? If you are really just trying to post a message to the user saying your browser doesn't support something, why not just check if indexedDB is available and then if it isn't post something like:

"IndexedDB is only supported in Chrome 24.0, Firefox 16.0, IE 10/Edge, Opera 15 and Safari 7.1 or higher. It may also not work in certain 'Private' mode browsers. Please upgrade your browser to use the full power of our website."

This way you are avoiding lots of attempts of browser detection (which will more than likely break after browsers implement cross compatibility) and provides action for your user on what they can do next (try a different browser, upgrade, not be in private mode, etc).