Chromium Code Reviews| Index: content/browser/indexed_db/indexed_db_connection.cc |
| diff --git a/content/browser/indexed_db/indexed_db_connection.cc b/content/browser/indexed_db/indexed_db_connection.cc |
| index 216786a1d365f783f207895b0158fbce7808eab7..d698307002b37d3b62ad76267dadbb11890fdc25 100644 |
| --- a/content/browser/indexed_db/indexed_db_connection.cc |
| +++ b/content/browser/indexed_db/indexed_db_connection.cc |
| @@ -15,7 +15,7 @@ |
| namespace content { |
| namespace { |
| - |
| +static const int64_t kMaxObserverTransactionId = -1ll; |
|
cmumford
2017/01/17 20:58:10
Add newline before.
dmurph
2017/01/17 23:28:04
Done.
Actually, as per working with Victor, we re
|
| static int32_t next_id; |
| } // namespace |
| @@ -158,4 +158,13 @@ void IndexedDBConnection::RemoveTransaction(int64_t id) { |
| transactions_.erase(id); |
| } |
| +int64_t IndexedDBConnection::NewObserverTransactionId() { |
| + // If we ever overflow, just reset the ID. |
| + if (next_observer_transaction_id_ == kMaxObserverTransactionId) |
| + next_observer_transaction_id_ = 1ll << 32; |
| + DCHECK_EQ(next_observer_transaction_id_ & 0xFFFFFFFF, 0) |
| + << "Highest order bits reserved for renderer-created transactions"; |
| + return next_observer_transaction_id_++; |
| +} |
| + |
| } // namespace content |