| Index: third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h
 | 
| diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h
 | 
| index 3790ac71b3e6b4ee5c9a7993d768f6cecb872d1c..e0c9dc0e94b0f64e3c46ee9e4e241d28d76978fa 100644
 | 
| --- a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h
 | 
| +++ b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.h
 | 
| @@ -52,6 +52,8 @@ namespace blink {
 | 
|  class DOMException;
 | 
|  class ExceptionState;
 | 
|  class ExecutionContext;
 | 
| +class IDBObserver;
 | 
| +struct WebIDBObservation;
 | 
|  
 | 
|  class MODULES_EXPORT IDBDatabase final : public EventTargetWithInlineData,
 | 
|                                           public ActiveScriptWrappable,
 | 
| @@ -76,6 +78,14 @@ class MODULES_EXPORT IDBDatabase final : public EventTargetWithInlineData,
 | 
|    void transactionCreated(IDBTransaction*);
 | 
|    void transactionFinished(const IDBTransaction*);
 | 
|    const String& getObjectStoreName(int64_t objectStoreId) const;
 | 
| +  int32_t addObserver(
 | 
| +      IDBObserver*,
 | 
| +      int64_t transactionId,
 | 
| +      bool includeTransaction,
 | 
| +      bool noRecords,
 | 
| +      bool values,
 | 
| +      const std::bitset<WebIDBOperationTypeCount>& operationTypes);
 | 
| +  void removeObservers(const Vector<int32_t>& observerIds);
 | 
|  
 | 
|    // Implement the IDL
 | 
|    const String& name() const { return m_metadata.name; }
 | 
| @@ -105,6 +115,9 @@ class MODULES_EXPORT IDBDatabase final : public EventTargetWithInlineData,
 | 
|    void onVersionChange(int64_t oldVersion, int64_t newVersion);
 | 
|    void onAbort(int64_t, DOMException*);
 | 
|    void onComplete(int64_t);
 | 
| +  void onChanges(const std::unordered_map<int32_t, std::vector<int32_t>>&
 | 
| +                     observation_index_map,
 | 
| +                 const WebVector<WebIDBObservation>& observations);
 | 
|  
 | 
|    // ScriptWrappable
 | 
|    bool hasPendingActivity() const final;
 | 
| @@ -133,6 +146,7 @@ class MODULES_EXPORT IDBDatabase final : public EventTargetWithInlineData,
 | 
|    WebIDBDatabase* backend() const { return m_backend.get(); }
 | 
|  
 | 
|    static int64_t nextTransactionId();
 | 
| +  static int32_t nextObserverId();
 | 
|  
 | 
|    static const char indexDeletedErrorMessage[];
 | 
|    static const char indexNameTakenErrorMessage[];
 | 
| @@ -173,6 +187,7 @@ class MODULES_EXPORT IDBDatabase final : public EventTargetWithInlineData,
 | 
|    std::unique_ptr<WebIDBDatabase> m_backend;
 | 
|    Member<IDBTransaction> m_versionChangeTransaction;
 | 
|    HeapHashMap<int64_t, Member<IDBTransaction>> m_transactions;
 | 
| +  HeapHashMap<int32_t, Member<IDBObserver>> m_observers;
 | 
|  
 | 
|    bool m_closePending = false;
 | 
|  
 | 
| 
 |