| Index: content/child/indexed_db/webidbdatabase_impl.cc | 
| diff --git a/content/child/indexed_db/webidbdatabase_impl.cc b/content/child/indexed_db/webidbdatabase_impl.cc | 
| index 849c601faf73d9571b2c8afa38f755d8dcdd721d..8a3f50ca154f5636478cd5007aece2d34567aa07 100644 | 
| --- a/content/child/indexed_db/webidbdatabase_impl.cc | 
| +++ b/content/child/indexed_db/webidbdatabase_impl.cc | 
| @@ -9,12 +9,11 @@ | 
| #include <string> | 
| #include <vector> | 
|  | 
| -#include "base/stl_util.h" | 
| +#include "base/strings/string16.h" | 
| +#include "base/strings/stringprintf.h" | 
| #include "content/child/indexed_db/indexed_db_callbacks_impl.h" | 
| #include "content/child/indexed_db/indexed_db_dispatcher.h" | 
| #include "content/child/indexed_db/indexed_db_key_builders.h" | 
| -#include "content/child/worker_thread_registry.h" | 
| -#include "content/common/indexed_db/indexed_db_messages.h" | 
| #include "mojo/public/cpp/bindings/strong_associated_binding.h" | 
| #include "third_party/WebKit/public/platform/WebBlobInfo.h" | 
| #include "third_party/WebKit/public/platform/WebString.h" | 
| @@ -26,14 +25,12 @@ | 
|  | 
| using blink::WebBlobInfo; | 
| using blink::WebIDBCallbacks; | 
| -using blink::WebIDBCursor; | 
| using blink::WebIDBDatabase; | 
| using blink::WebIDBDatabaseCallbacks; | 
| using blink::WebIDBMetadata; | 
| using blink::WebIDBKey; | 
| using blink::WebIDBKeyPath; | 
| using blink::WebIDBKeyRange; | 
| -using blink::WebIDBObserver; | 
| using blink::WebString; | 
| using blink::WebVector; | 
| using indexed_db::mojom::CallbacksAssociatedPtrInfo; | 
| @@ -215,10 +212,6 @@ void WebIDBDatabaseImpl::createTransaction( | 
| } | 
|  | 
| void WebIDBDatabaseImpl::close() { | 
| -  std::vector<int32_t> remove_observer_ids(observer_ids_.begin(), | 
| -                                           observer_ids_.end()); | 
| -  IndexedDBDispatcher::ThreadSpecificInstance()->RemoveObservers( | 
| -      remove_observer_ids); | 
| io_runner_->PostTask( | 
| FROM_HERE, base::Bind(&IOThreadHelper::Close, base::Unretained(helper_))); | 
| } | 
| @@ -229,23 +222,20 @@ void WebIDBDatabaseImpl::versionChangeIgnored() { | 
| base::Unretained(helper_))); | 
| } | 
|  | 
| -int32_t WebIDBDatabaseImpl::addObserver( | 
| -    std::unique_ptr<WebIDBObserver> observer, | 
| -    long long transaction_id) { | 
| -  WebIDBObserver* observer_ptr = observer.get(); | 
| -  int32_t observer_id = | 
| -      IndexedDBDispatcher::ThreadSpecificInstance()->RegisterObserver( | 
| -          std::move(observer)); | 
| -  observer_ids_.insert(observer_id); | 
| +void WebIDBDatabaseImpl::addObserver( | 
| +    long long transaction_id, | 
| +    int32_t observer_id, | 
| +    bool include_transaction, | 
| +    bool no_records, | 
| +    bool values, | 
| +    const std::bitset<blink::WebIDBOperationTypeCount>& operation_types) { | 
| static_assert(blink::WebIDBOperationTypeCount < sizeof(uint16_t) * CHAR_BIT, | 
| "WebIDBOperationType Count exceeds size of uint16_t"); | 
| io_runner_->PostTask( | 
| FROM_HERE, | 
| base::Bind(&IOThreadHelper::AddObserver, base::Unretained(helper_), | 
| -                 transaction_id, observer_id, observer_ptr->transaction(), | 
| -                 observer_ptr->noRecords(), observer_ptr->values(), | 
| -                 observer_ptr->operationTypes().to_ulong())); | 
| -  return observer_id; | 
| +                 transaction_id, observer_id, include_transaction, no_records, | 
| +                 values, operation_types.to_ulong())); | 
| } | 
|  | 
| void WebIDBDatabaseImpl::removeObservers( | 
| @@ -253,11 +243,7 @@ void WebIDBDatabaseImpl::removeObservers( | 
| std::vector<int32_t> remove_observer_ids( | 
| observer_ids_to_remove.data(), | 
| observer_ids_to_remove.data() + observer_ids_to_remove.size()); | 
| -  for (int32_t id : observer_ids_to_remove) | 
| -    observer_ids_.erase(id); | 
|  | 
| -  IndexedDBDispatcher::ThreadSpecificInstance()->RemoveObservers( | 
| -      remove_observer_ids); | 
| io_runner_->PostTask( | 
| FROM_HERE, base::Bind(&IOThreadHelper::RemoveObservers, | 
| base::Unretained(helper_), remove_observer_ids)); | 
| @@ -304,7 +290,7 @@ void WebIDBDatabaseImpl::getAll(long long transaction_id, | 
| void WebIDBDatabaseImpl::put(long long transaction_id, | 
| long long object_store_id, | 
| const blink::WebData& value, | 
| -                             const blink::WebVector<WebBlobInfo>& web_blob_info, | 
| +                             const WebVector<WebBlobInfo>& web_blob_info, | 
| const WebIDBKey& web_key, | 
| blink::WebIDBPutMode put_mode, | 
| WebIDBCallbacks* callbacks, | 
|  |