Create a WebIDBFactory instance for each IdbFactory

Each WebIDBFactory has a bound mojo interface from the thread
that created the WebIDBFactory instance.  The previous code
allowed for the main thread and worker threads to use a single
instance.

There is a call-time constraint that the caller be on the same
thread as where the bind originally occurred.  When the previous
was always calling the mojo interface from the IO thread, the
constraint was never violated.

Since we want to remove the IO thread hopping, though, this
exposes the violation.  I'm fixing that by allowing each top-
level Blink IdbFactory to own its own WebIDBFactory.  Eventually
as part of this cleanup effort IdbFactory and WebIDBFactory will
merge into a single class and simplify more of this code.

Bug: 717812
Change-Id: I9571f5703261f0d6afda9ad04946cb10e42ce0e8
Reviewed-on: https://chromium-review.googlesource.com/1150914
Commit-Queue: Chase Phillips <cmp@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578873}
10 files changed