| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 // The first error to be set is the true cause of the | 132 // The first error to be set is the true cause of the |
| 133 // transaction abort. | 133 // transaction abort. |
| 134 if (!m_error) { | 134 if (!m_error) { |
| 135 m_error = error; | 135 m_error = error; |
| 136 } | 136 } |
| 137 } | 137 } |
| 138 | 138 |
| 139 PassRefPtr<IDBObjectStore> IDBTransaction::objectStore(const String& name, Excep
tionState& es) | 139 PassRefPtr<IDBObjectStore> IDBTransaction::objectStore(const String& name, Excep
tionState& es) |
| 140 { | 140 { |
| 141 if (m_state == Finished) { | 141 if (m_state == Finished) { |
| 142 es.throwDOMException(InvalidStateError); | 142 es.throwDOMException(InvalidStateError, IDBDatabase::transactionFinished
ErrorMessage); |
| 143 return 0; | 143 return 0; |
| 144 } | 144 } |
| 145 | 145 |
| 146 IDBObjectStoreMap::iterator it = m_objectStoreMap.find(name); | 146 IDBObjectStoreMap::iterator it = m_objectStoreMap.find(name); |
| 147 if (it != m_objectStoreMap.end()) | 147 if (it != m_objectStoreMap.end()) |
| 148 return it->value; | 148 return it->value; |
| 149 | 149 |
| 150 if (!isVersionChange() && !m_objectStoreNames.contains(name)) { | 150 if (!isVersionChange() && !m_objectStoreNames.contains(name)) { |
| 151 es.throwDOMException(NotFoundError, IDBDatabase::notFoundErrorMessage); | 151 es.throwDOMException(NotFoundError, IDBDatabase::noSuchObjectStoreErrorM
essage); |
| 152 return 0; | 152 return 0; |
| 153 } | 153 } |
| 154 | 154 |
| 155 int64_t objectStoreId = m_database->findObjectStoreId(name); | 155 int64_t objectStoreId = m_database->findObjectStoreId(name); |
| 156 if (objectStoreId == IDBObjectStoreMetadata::InvalidId) { | 156 if (objectStoreId == IDBObjectStoreMetadata::InvalidId) { |
| 157 ASSERT(isVersionChange()); | 157 ASSERT(isVersionChange()); |
| 158 es.throwDOMException(NotFoundError, IDBDatabase::notFoundErrorMessage); | 158 es.throwDOMException(NotFoundError, IDBDatabase::noSuchObjectStoreErrorM
essage); |
| 159 return 0; | 159 return 0; |
| 160 } | 160 } |
| 161 | 161 |
| 162 const IDBDatabaseMetadata& metadata = m_database->metadata(); | 162 const IDBDatabaseMetadata& metadata = m_database->metadata(); |
| 163 | 163 |
| 164 RefPtr<IDBObjectStore> objectStore = IDBObjectStore::create(metadata.objectS
tores.get(objectStoreId), this); | 164 RefPtr<IDBObjectStore> objectStore = IDBObjectStore::create(metadata.objectS
tores.get(objectStoreId), this); |
| 165 objectStoreCreated(name, objectStore); | 165 objectStoreCreated(name, objectStore); |
| 166 return objectStore.release(); | 166 return objectStore.release(); |
| 167 } | 167 } |
| 168 | 168 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 197 ASSERT(active != (m_state == Active)); | 197 ASSERT(active != (m_state == Active)); |
| 198 m_state = active ? Active : Inactive; | 198 m_state = active ? Active : Inactive; |
| 199 | 199 |
| 200 if (!active && m_requestList.isEmpty()) | 200 if (!active && m_requestList.isEmpty()) |
| 201 backendDB()->commit(m_id); | 201 backendDB()->commit(m_id); |
| 202 } | 202 } |
| 203 | 203 |
| 204 void IDBTransaction::abort(ExceptionState& es) | 204 void IDBTransaction::abort(ExceptionState& es) |
| 205 { | 205 { |
| 206 if (m_state == Finishing || m_state == Finished) { | 206 if (m_state == Finishing || m_state == Finished) { |
| 207 es.throwDOMException(InvalidStateError); | 207 es.throwDOMException(InvalidStateError, IDBDatabase::transactionFinished
ErrorMessage); |
| 208 return; | 208 return; |
| 209 } | 209 } |
| 210 | 210 |
| 211 m_state = Finishing; | 211 m_state = Finishing; |
| 212 | 212 |
| 213 if (!m_contextStopped) { | 213 if (!m_contextStopped) { |
| 214 while (!m_requestList.isEmpty()) { | 214 while (!m_requestList.isEmpty()) { |
| 215 RefPtr<IDBRequest> request = *m_requestList.begin(); | 215 RefPtr<IDBRequest> request = *m_requestList.begin(); |
| 216 m_requestList.remove(request); | 216 m_requestList.remove(request); |
| 217 request->abort(); | 217 request->abort(); |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 444 { | 444 { |
| 445 return &m_eventTargetData; | 445 return &m_eventTargetData; |
| 446 } | 446 } |
| 447 | 447 |
| 448 IDBDatabaseBackendInterface* IDBTransaction::backendDB() const | 448 IDBDatabaseBackendInterface* IDBTransaction::backendDB() const |
| 449 { | 449 { |
| 450 return db()->backend(); | 450 return db()->backend(); |
| 451 } | 451 } |
| 452 | 452 |
| 453 } // namespace WebCore | 453 } // namespace WebCore |
| OLD | NEW |