Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: content/browser/indexed_db/indexed_db_database.cc

Issue 1706413002: Indexed DB: Rename "int version" to "version" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/indexed_db/indexed_db_database.h" 5 #include "content/browser/indexed_db/indexed_db_database.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 return NULL; 143 return NULL;
144 } 144 }
145 145
146 IndexedDBDatabase::IndexedDBDatabase(const base::string16& name, 146 IndexedDBDatabase::IndexedDBDatabase(const base::string16& name,
147 IndexedDBBackingStore* backing_store, 147 IndexedDBBackingStore* backing_store,
148 IndexedDBFactory* factory, 148 IndexedDBFactory* factory,
149 const Identifier& unique_identifier) 149 const Identifier& unique_identifier)
150 : backing_store_(backing_store), 150 : backing_store_(backing_store),
151 metadata_(name, 151 metadata_(name,
152 kInvalidId, 152 kInvalidId,
153 IndexedDBDatabaseMetadata::NO_INT_VERSION, 153 IndexedDBDatabaseMetadata::NO_VERSION,
154 kInvalidId), 154 kInvalidId),
155 identifier_(unique_identifier), 155 identifier_(unique_identifier),
156 factory_(factory) { 156 factory_(factory) {
157 DCHECK(factory != NULL); 157 DCHECK(factory != NULL);
158 } 158 }
159 159
160 void IndexedDBDatabase::AddObjectStore( 160 void IndexedDBDatabase::AddObjectStore(
161 const IndexedDBObjectStoreMetadata& object_store, 161 const IndexedDBObjectStoreMetadata& object_store,
162 int64_t new_max_object_store_id) { 162 int64_t new_max_object_store_id) {
163 DCHECK(metadata_.object_stores.find(object_store.id) == 163 DCHECK(metadata_.object_stores.find(object_store.id) ==
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 metadata_.name, &metadata_, &success); 209 metadata_.name, &metadata_, &success);
210 DCHECK(success == (metadata_.id != kInvalidId)) << "success = " << success 210 DCHECK(success == (metadata_.id != kInvalidId)) << "success = " << success
211 << " id = " << metadata_.id; 211 << " id = " << metadata_.id;
212 if (!s.ok()) 212 if (!s.ok())
213 return s; 213 return s;
214 if (success) 214 if (success)
215 return backing_store_->GetObjectStores(metadata_.id, 215 return backing_store_->GetObjectStores(metadata_.id,
216 &metadata_.object_stores); 216 &metadata_.object_stores);
217 217
218 return backing_store_->CreateIDBDatabaseMetaData( 218 return backing_store_->CreateIDBDatabaseMetaData(
219 metadata_.name, metadata_.int_version, &metadata_.id); 219 metadata_.name, metadata_.version, &metadata_.id);
220 } 220 }
221 221
222 IndexedDBDatabase::~IndexedDBDatabase() { 222 IndexedDBDatabase::~IndexedDBDatabase() {
223 DCHECK(transactions_.empty()); 223 DCHECK(transactions_.empty());
224 DCHECK(pending_open_calls_.empty()); 224 DCHECK(pending_open_calls_.empty());
225 DCHECK(pending_delete_calls_.empty()); 225 DCHECK(pending_delete_calls_.empty());
226 } 226 }
227 227
228 size_t IndexedDBDatabase::GetMaxMessageSizeInBytes() const { 228 size_t IndexedDBDatabase::GetMaxMessageSizeInBytes() const {
229 return kMaxIDBMessageSizeInBytes; 229 return kMaxIDBMessageSizeInBytes;
(...skipping 1279 matching lines...) Expand 10 before | Expand all | Expand 10 after
1509 object_store_metadata)); 1509 object_store_metadata));
1510 } 1510 }
1511 1511
1512 void IndexedDBDatabase::VersionChangeOperation( 1512 void IndexedDBDatabase::VersionChangeOperation(
1513 int64_t version, 1513 int64_t version,
1514 scoped_refptr<IndexedDBCallbacks> callbacks, 1514 scoped_refptr<IndexedDBCallbacks> callbacks,
1515 scoped_ptr<IndexedDBConnection> connection, 1515 scoped_ptr<IndexedDBConnection> connection,
1516 IndexedDBTransaction* transaction) { 1516 IndexedDBTransaction* transaction) {
1517 IDB_TRACE1( 1517 IDB_TRACE1(
1518 "IndexedDBDatabase::VersionChangeOperation", "txn.id", transaction->id()); 1518 "IndexedDBDatabase::VersionChangeOperation", "txn.id", transaction->id());
1519 int64_t old_version = metadata_.int_version; 1519 int64_t old_version = metadata_.version;
1520 DCHECK_GT(version, old_version); 1520 DCHECK_GT(version, old_version);
1521 1521
1522 if (!backing_store_->UpdateIDBDatabaseIntVersion( 1522 if (!backing_store_->UpdateIDBDatabaseIntVersion(
1523 transaction->BackingStoreTransaction(), id(), version)) { 1523 transaction->BackingStoreTransaction(), id(), version)) {
1524 IndexedDBDatabaseError error( 1524 IndexedDBDatabaseError error(
1525 blink::WebIDBDatabaseExceptionUnknownError, 1525 blink::WebIDBDatabaseExceptionUnknownError,
1526 ASCIIToUTF16( 1526 ASCIIToUTF16(
1527 "Internal error writing data to stable storage when " 1527 "Internal error writing data to stable storage when "
1528 "updating version.")); 1528 "updating version."));
1529 callbacks->OnError(error); 1529 callbacks->OnError(error);
1530 transaction->Abort(error); 1530 transaction->Abort(error);
1531 return; 1531 return;
1532 } 1532 }
1533 1533
1534 transaction->ScheduleAbortTask( 1534 transaction->ScheduleAbortTask(
1535 base::Bind(&IndexedDBDatabase::VersionChangeAbortOperation, 1535 base::Bind(&IndexedDBDatabase::VersionChangeAbortOperation, this,
1536 this, 1536 metadata_.version));
1537 metadata_.int_version)); 1537 metadata_.version = version;
1538 metadata_.int_version = version;
1539 1538
1540 DCHECK(!pending_second_half_open_); 1539 DCHECK(!pending_second_half_open_);
1541 pending_second_half_open_.reset( 1540 pending_second_half_open_.reset(
1542 new PendingSuccessCall(callbacks, connection.get(), version)); 1541 new PendingSuccessCall(callbacks, connection.get(), version));
1543 callbacks->OnUpgradeNeeded(old_version, std::move(connection), metadata()); 1542 callbacks->OnUpgradeNeeded(old_version, std::move(connection), metadata());
1544 } 1543 }
1545 1544
1546 void IndexedDBDatabase::TransactionFinished(IndexedDBTransaction* transaction, 1545 void IndexedDBDatabase::TransactionFinished(IndexedDBTransaction* transaction,
1547 bool committed) { 1546 bool committed) {
1548 IDB_TRACE1("IndexedDBTransaction::TransactionFinished", "txn.id", id()); 1547 IDB_TRACE1("IndexedDBTransaction::TransactionFinished", "txn.id", id());
1549 DCHECK(transactions_.find(transaction->id()) != transactions_.end()); 1548 DCHECK(transactions_.find(transaction->id()) != transactions_.end());
1550 DCHECK_EQ(transactions_[transaction->id()], transaction); 1549 DCHECK_EQ(transactions_[transaction->id()], transaction);
1551 transactions_.erase(transaction->id()); 1550 transactions_.erase(transaction->id());
1552 1551
1553 if (transaction->mode() == blink::WebIDBTransactionModeVersionChange) { 1552 if (transaction->mode() == blink::WebIDBTransactionModeVersionChange) {
1554 if (pending_second_half_open_) { 1553 if (pending_second_half_open_) {
1555 if (committed) { 1554 if (committed) {
1556 DCHECK_EQ(pending_second_half_open_->version(), metadata_.int_version); 1555 DCHECK_EQ(pending_second_half_open_->version(), metadata_.version);
1557 DCHECK(metadata_.id != kInvalidId); 1556 DCHECK(metadata_.id != kInvalidId);
1558 1557
1559 // Connection was already minted for OnUpgradeNeeded callback. 1558 // Connection was already minted for OnUpgradeNeeded callback.
1560 scoped_ptr<IndexedDBConnection> connection; 1559 scoped_ptr<IndexedDBConnection> connection;
1561 pending_second_half_open_->callbacks()->OnSuccess(std::move(connection), 1560 pending_second_half_open_->callbacks()->OnSuccess(std::move(connection),
1562 this->metadata()); 1561 this->metadata());
1563 } else { 1562 } else {
1564 pending_second_half_open_->callbacks()->OnError( 1563 pending_second_half_open_->callbacks()->OnError(
1565 IndexedDBDatabaseError(blink::WebIDBDatabaseExceptionAbortError, 1564 IndexedDBDatabaseError(blink::WebIDBDatabaseExceptionAbortError,
1566 "Version change transaction was aborted in " 1565 "Version change transaction was aborted in "
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1602 return pending_second_half_open_ ? 1 : 0; 1601 return pending_second_half_open_ ? 1 : 0;
1603 } 1602 }
1604 1603
1605 size_t IndexedDBDatabase::PendingDeleteCount() const { 1604 size_t IndexedDBDatabase::PendingDeleteCount() const {
1606 return pending_delete_calls_.size(); 1605 return pending_delete_calls_.size();
1607 } 1606 }
1608 1607
1609 void IndexedDBDatabase::ProcessPendingCalls() { 1608 void IndexedDBDatabase::ProcessPendingCalls() {
1610 if (pending_run_version_change_transaction_call_ && ConnectionCount() == 1) { 1609 if (pending_run_version_change_transaction_call_ && ConnectionCount() == 1) {
1611 DCHECK(pending_run_version_change_transaction_call_->version() > 1610 DCHECK(pending_run_version_change_transaction_call_->version() >
1612 metadata_.int_version); 1611 metadata_.version);
1613 scoped_ptr<PendingUpgradeCall> pending_call = 1612 scoped_ptr<PendingUpgradeCall> pending_call =
1614 std::move(pending_run_version_change_transaction_call_); 1613 std::move(pending_run_version_change_transaction_call_);
1615 RunVersionChangeTransactionFinal(pending_call->callbacks(), 1614 RunVersionChangeTransactionFinal(pending_call->callbacks(),
1616 pending_call->ReleaseConnection(), 1615 pending_call->ReleaseConnection(),
1617 pending_call->transaction_id(), 1616 pending_call->transaction_id(),
1618 pending_call->version()); 1617 pending_call->version());
1619 DCHECK_EQ(1u, ConnectionCount()); 1618 DCHECK_EQ(1u, ConnectionCount());
1620 // Fall through would be a no-op, since transaction must complete 1619 // Fall through would be a no-op, since transaction must complete
1621 // asynchronously. 1620 // asynchronously.
1622 DCHECK(IsDeleteDatabaseBlocked()); 1621 DCHECK(IsDeleteDatabaseBlocked());
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1695 // so there'd better not be any. 1694 // so there'd better not be any.
1696 DCHECK_NE(blink::WebIDBDataLossTotal, connection.callbacks->data_loss()); 1695 DCHECK_NE(blink::WebIDBDataLossTotal, connection.callbacks->data_loss());
1697 pending_open_calls_.push_back(connection); 1696 pending_open_calls_.push_back(connection);
1698 return; 1697 return;
1699 } 1698 }
1700 1699
1701 if (metadata_.id == kInvalidId) { 1700 if (metadata_.id == kInvalidId) {
1702 // The database was deleted then immediately re-opened; OpenInternal() 1701 // The database was deleted then immediately re-opened; OpenInternal()
1703 // recreates it in the backing store. 1702 // recreates it in the backing store.
1704 if (OpenInternal().ok()) { 1703 if (OpenInternal().ok()) {
1705 DCHECK_EQ(IndexedDBDatabaseMetadata::NO_INT_VERSION, 1704 DCHECK_EQ(IndexedDBDatabaseMetadata::NO_VERSION, metadata_.version);
1706 metadata_.int_version);
1707 } else { 1705 } else {
1708 base::string16 message; 1706 base::string16 message;
1709 if (connection.version == IndexedDBDatabaseMetadata::NO_INT_VERSION) { 1707 if (connection.version == IndexedDBDatabaseMetadata::NO_VERSION) {
1710 message = ASCIIToUTF16( 1708 message = ASCIIToUTF16(
1711 "Internal error opening database with no version specified."); 1709 "Internal error opening database with no version specified.");
1712 } else { 1710 } else {
1713 message = 1711 message =
1714 ASCIIToUTF16("Internal error opening database with version ") + 1712 ASCIIToUTF16("Internal error opening database with version ") +
1715 Int64ToString16(connection.version); 1713 Int64ToString16(connection.version);
1716 } 1714 }
1717 connection.callbacks->OnError(IndexedDBDatabaseError( 1715 connection.callbacks->OnError(IndexedDBDatabaseError(
1718 blink::WebIDBDatabaseExceptionUnknownError, message)); 1716 blink::WebIDBDatabaseExceptionUnknownError, message));
1719 return; 1717 return;
1720 } 1718 }
1721 } 1719 }
1722 1720
1723 // We infer that the database didn't exist from its lack of either type of 1721 // We infer that the database didn't exist from its lack of either type of
1724 // version. 1722 // version.
1725 bool is_new_database = 1723 bool is_new_database =
1726 metadata_.int_version == IndexedDBDatabaseMetadata::NO_INT_VERSION; 1724 metadata_.version == IndexedDBDatabaseMetadata::NO_VERSION;
1727 1725
1728 if (connection.version == IndexedDBDatabaseMetadata::DEFAULT_INT_VERSION) { 1726 if (connection.version == IndexedDBDatabaseMetadata::DEFAULT_VERSION) {
1729 // For unit tests only - skip upgrade steps. Calling from script with 1727 // For unit tests only - skip upgrade steps. Calling from script with
1730 // DEFAULT_INT_VERSION throws exception. 1728 // DEFAULT_VERSION throws exception.
1731 // TODO(jsbell): DCHECK that not in unit tests. 1729 // TODO(jsbell): DCHECK that not in unit tests.
1732 DCHECK(is_new_database); 1730 DCHECK(is_new_database);
1733 connection.callbacks->OnSuccess( 1731 connection.callbacks->OnSuccess(
1734 CreateConnection(connection.database_callbacks, 1732 CreateConnection(connection.database_callbacks,
1735 connection.child_process_id), 1733 connection.child_process_id),
1736 this->metadata()); 1734 this->metadata());
1737 return; 1735 return;
1738 } 1736 }
1739 1737
1740 // We may need to change the version. 1738 // We may need to change the version.
1741 int64_t local_version = connection.version; 1739 int64_t local_version = connection.version;
1742 if (local_version == IndexedDBDatabaseMetadata::NO_INT_VERSION) { 1740 if (local_version == IndexedDBDatabaseMetadata::NO_VERSION) {
1743 if (!is_new_database) { 1741 if (!is_new_database) {
1744 connection.callbacks->OnSuccess( 1742 connection.callbacks->OnSuccess(
1745 CreateConnection(connection.database_callbacks, 1743 CreateConnection(connection.database_callbacks,
1746 connection.child_process_id), 1744 connection.child_process_id),
1747 this->metadata()); 1745 this->metadata());
1748 return; 1746 return;
1749 } 1747 }
1750 // Spec says: If no version is specified and no database exists, set 1748 // Spec says: If no version is specified and no database exists, set
1751 // database version to 1. 1749 // database version to 1.
1752 local_version = 1; 1750 local_version = 1;
1753 } 1751 }
1754 1752
1755 if (local_version > metadata_.int_version) { 1753 if (local_version > metadata_.version) {
1756 RunVersionChangeTransaction(connection.callbacks, 1754 RunVersionChangeTransaction(connection.callbacks,
1757 CreateConnection(connection.database_callbacks, 1755 CreateConnection(connection.database_callbacks,
1758 connection.child_process_id), 1756 connection.child_process_id),
1759 connection.transaction_id, 1757 connection.transaction_id,
1760 local_version); 1758 local_version);
1761 return; 1759 return;
1762 } 1760 }
1763 if (local_version < metadata_.int_version) { 1761 if (local_version < metadata_.version) {
1764 connection.callbacks->OnError(IndexedDBDatabaseError( 1762 connection.callbacks->OnError(IndexedDBDatabaseError(
1765 blink::WebIDBDatabaseExceptionVersionError, 1763 blink::WebIDBDatabaseExceptionVersionError,
1766 ASCIIToUTF16("The requested version (") + 1764 ASCIIToUTF16("The requested version (") +
1767 Int64ToString16(local_version) + 1765 Int64ToString16(local_version) +
1768 ASCIIToUTF16(") is less than the existing version (") + 1766 ASCIIToUTF16(") is less than the existing version (") +
1769 Int64ToString16(metadata_.int_version) + ASCIIToUTF16(")."))); 1767 Int64ToString16(metadata_.version) + ASCIIToUTF16(").")));
1770 return; 1768 return;
1771 } 1769 }
1772 DCHECK_EQ(local_version, metadata_.int_version); 1770 DCHECK_EQ(local_version, metadata_.version);
1773 connection.callbacks->OnSuccess( 1771 connection.callbacks->OnSuccess(
1774 CreateConnection(connection.database_callbacks, 1772 CreateConnection(connection.database_callbacks,
1775 connection.child_process_id), 1773 connection.child_process_id),
1776 this->metadata()); 1774 this->metadata());
1777 } 1775 }
1778 1776
1779 void IndexedDBDatabase::RunVersionChangeTransaction( 1777 void IndexedDBDatabase::RunVersionChangeTransaction(
1780 scoped_refptr<IndexedDBCallbacks> callbacks, 1778 scoped_refptr<IndexedDBCallbacks> callbacks,
1781 scoped_ptr<IndexedDBConnection> connection, 1779 scoped_ptr<IndexedDBConnection> connection,
1782 int64_t transaction_id, 1780 int64_t transaction_id,
1783 int64_t requested_version) { 1781 int64_t requested_version) {
1784 DCHECK(callbacks.get()); 1782 DCHECK(callbacks.get());
1785 DCHECK(connections_.count(connection.get())); 1783 DCHECK(connections_.count(connection.get()));
1786 if (ConnectionCount() > 1) { 1784 if (ConnectionCount() > 1) {
1787 DCHECK_NE(blink::WebIDBDataLossTotal, callbacks->data_loss()); 1785 DCHECK_NE(blink::WebIDBDataLossTotal, callbacks->data_loss());
1788 // Front end ensures the event is not fired at connections that have 1786 // Front end ensures the event is not fired at connections that have
1789 // close_pending set. 1787 // close_pending set.
1790 for (const auto* iter : connections_) { 1788 for (const auto* iter : connections_) {
1791 if (iter != connection.get()) { 1789 if (iter != connection.get()) {
1792 iter->callbacks()->OnVersionChange(metadata_.int_version, 1790 iter->callbacks()->OnVersionChange(metadata_.version,
1793 requested_version); 1791 requested_version);
1794 } 1792 }
1795 } 1793 }
1796 // OnBlocked will be fired at the request when one of the other 1794 // OnBlocked will be fired at the request when one of the other
1797 // connections acks that the OnVersionChange was ignored. 1795 // connections acks that the OnVersionChange was ignored.
1798 1796
1799 DCHECK(!pending_run_version_change_transaction_call_); 1797 DCHECK(!pending_run_version_change_transaction_call_);
1800 pending_run_version_change_transaction_call_.reset(new PendingUpgradeCall( 1798 pending_run_version_change_transaction_call_.reset(new PendingUpgradeCall(
1801 callbacks, std::move(connection), transaction_id, requested_version)); 1799 callbacks, std::move(connection), transaction_id, requested_version));
1802 return; 1800 return;
(...skipping 23 matching lines...) Expand all
1826 } 1824 }
1827 1825
1828 void IndexedDBDatabase::DeleteDatabase( 1826 void IndexedDBDatabase::DeleteDatabase(
1829 scoped_refptr<IndexedDBCallbacks> callbacks) { 1827 scoped_refptr<IndexedDBCallbacks> callbacks) {
1830 1828
1831 if (IsDeleteDatabaseBlocked()) { 1829 if (IsDeleteDatabaseBlocked()) {
1832 for (const auto* connection : connections_) { 1830 for (const auto* connection : connections_) {
1833 // Front end ensures the event is not fired at connections that have 1831 // Front end ensures the event is not fired at connections that have
1834 // close_pending set. 1832 // close_pending set.
1835 connection->callbacks()->OnVersionChange( 1833 connection->callbacks()->OnVersionChange(
1836 metadata_.int_version, IndexedDBDatabaseMetadata::NO_INT_VERSION); 1834 metadata_.version, IndexedDBDatabaseMetadata::NO_VERSION);
1837 } 1835 }
1838 // OnBlocked will be fired at the request when one of the other 1836 // OnBlocked will be fired at the request when one of the other
1839 // connections acks that the OnVersionChange was ignored. 1837 // connections acks that the OnVersionChange was ignored.
1840 1838
1841 pending_delete_calls_.push_back(new PendingDeleteCall(callbacks)); 1839 pending_delete_calls_.push_back(new PendingDeleteCall(callbacks));
1842 return; 1840 return;
1843 } 1841 }
1844 DeleteDatabaseFinal(callbacks); 1842 DeleteDatabaseFinal(callbacks);
1845 } 1843 }
1846 1844
(...skipping 10 matching lines...) Expand all
1857 IndexedDBDatabaseError error(blink::WebIDBDatabaseExceptionUnknownError, 1855 IndexedDBDatabaseError error(blink::WebIDBDatabaseExceptionUnknownError,
1858 "Internal error deleting database."); 1856 "Internal error deleting database.");
1859 callbacks->OnError(error); 1857 callbacks->OnError(error);
1860 if (s.IsCorruption()) { 1858 if (s.IsCorruption()) {
1861 GURL origin_url = backing_store_->origin_url(); 1859 GURL origin_url = backing_store_->origin_url();
1862 backing_store_ = NULL; 1860 backing_store_ = NULL;
1863 factory_->HandleBackingStoreCorruption(origin_url, error); 1861 factory_->HandleBackingStoreCorruption(origin_url, error);
1864 } 1862 }
1865 return; 1863 return;
1866 } 1864 }
1867 int64_t old_version = metadata_.int_version; 1865 int64_t old_version = metadata_.version;
1868 metadata_.id = kInvalidId; 1866 metadata_.id = kInvalidId;
1869 metadata_.int_version = IndexedDBDatabaseMetadata::NO_INT_VERSION; 1867 metadata_.version = IndexedDBDatabaseMetadata::NO_VERSION;
1870 metadata_.object_stores.clear(); 1868 metadata_.object_stores.clear();
1871 callbacks->OnSuccess(old_version); 1869 callbacks->OnSuccess(old_version);
1872 factory_->DatabaseDeleted(identifier_); 1870 factory_->DatabaseDeleted(identifier_);
1873 } 1871 }
1874 1872
1875 void IndexedDBDatabase::ForceClose() { 1873 void IndexedDBDatabase::ForceClose() {
1876 // IndexedDBConnection::ForceClose() may delete this database, so hold ref. 1874 // IndexedDBConnection::ForceClose() may delete this database, so hold ref.
1877 scoped_refptr<IndexedDBDatabase> protect(this); 1875 scoped_refptr<IndexedDBDatabase> protect(this);
1878 ConnectionSet::const_iterator it = connections_.begin(); 1876 ConnectionSet::const_iterator it = connections_.begin();
1879 while (it != connections_.end()) { 1877 while (it != connections_.end()) {
1880 IndexedDBConnection* connection = *it++; 1878 IndexedDBConnection* connection = *it++;
1881 connection->ForceClose(); 1879 connection->ForceClose();
1882 } 1880 }
1883 DCHECK(connections_.empty()); 1881 DCHECK(connections_.empty());
1884 } 1882 }
1885 1883
1886 void IndexedDBDatabase::VersionChangeIgnored() { 1884 void IndexedDBDatabase::VersionChangeIgnored() {
1887 if (pending_run_version_change_transaction_call_) 1885 if (pending_run_version_change_transaction_call_)
1888 pending_run_version_change_transaction_call_->callbacks()->OnBlocked( 1886 pending_run_version_change_transaction_call_->callbacks()->OnBlocked(
1889 metadata_.int_version); 1887 metadata_.version);
1890 1888
1891 for (const auto& pending_delete_call : pending_delete_calls_) 1889 for (const auto& pending_delete_call : pending_delete_calls_)
1892 pending_delete_call->callbacks()->OnBlocked(metadata_.int_version); 1890 pending_delete_call->callbacks()->OnBlocked(metadata_.version);
1893 } 1891 }
1894 1892
1895 1893
1896 void IndexedDBDatabase::Close(IndexedDBConnection* connection, bool forced) { 1894 void IndexedDBDatabase::Close(IndexedDBConnection* connection, bool forced) {
1897 DCHECK(connections_.count(connection)); 1895 DCHECK(connections_.count(connection));
1898 DCHECK(connection->IsConnected()); 1896 DCHECK(connection->IsConnected());
1899 DCHECK(connection->database() == this); 1897 DCHECK(connection->database() == this);
1900 1898
1901 IDB_TRACE("IndexedDBDatabase::Close"); 1899 IDB_TRACE("IndexedDBDatabase::Close");
1902 1900
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1949 void IndexedDBDatabase::DeleteObjectStoreAbortOperation( 1947 void IndexedDBDatabase::DeleteObjectStoreAbortOperation(
1950 const IndexedDBObjectStoreMetadata& object_store_metadata, 1948 const IndexedDBObjectStoreMetadata& object_store_metadata,
1951 IndexedDBTransaction* transaction) { 1949 IndexedDBTransaction* transaction) {
1952 DCHECK(!transaction); 1950 DCHECK(!transaction);
1953 IDB_TRACE("IndexedDBDatabase::DeleteObjectStoreAbortOperation"); 1951 IDB_TRACE("IndexedDBDatabase::DeleteObjectStoreAbortOperation");
1954 AddObjectStore(object_store_metadata, 1952 AddObjectStore(object_store_metadata,
1955 IndexedDBObjectStoreMetadata::kInvalidId); 1953 IndexedDBObjectStoreMetadata::kInvalidId);
1956 } 1954 }
1957 1955
1958 void IndexedDBDatabase::VersionChangeAbortOperation( 1956 void IndexedDBDatabase::VersionChangeAbortOperation(
1959 int64_t previous_int_version, 1957 int64_t previous_version,
1960 IndexedDBTransaction* transaction) { 1958 IndexedDBTransaction* transaction) {
1961 DCHECK(!transaction); 1959 DCHECK(!transaction);
1962 IDB_TRACE("IndexedDBDatabase::VersionChangeAbortOperation"); 1960 IDB_TRACE("IndexedDBDatabase::VersionChangeAbortOperation");
1963 metadata_.int_version = previous_int_version; 1961 metadata_.version = previous_version;
1964 } 1962 }
1965 1963
1966 } // namespace content 1964 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/indexed_db/indexed_db_database.h ('k') | content/browser/indexed_db/indexed_db_database_callbacks.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698