Firefox/Projects/IndexedDB: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Status: Updated global status)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__NOTOC__Implement the [http://dev.w3.org/2006/webapi/WebSimpleDB/ W3C Indexed Database API] in Mozilla.  The code is being committed to a [http://hg.mozilla.org/users/sdwilsh_shawnwilsher.com/IndexedDB/ user repository].
__NOTOC__Implement the [http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html W3C Indexed Database API] in Mozilla.  The code is being committed to a [http://hg.mozilla.org/mozilla-central/file/tip/dom/indexedDB mozilla-central].


Project Lead: sdwilsh
Project Leaders: sdwilsh and bent
Bugs:
Bugs:
* {{bug|IndexedDB}} - Overall tracking bug
* {{bug|IndexedDB}} - Overall tracking bug
* {{bug|async-IndexedDB}} - Asynchronous bits of the API
* {{bug|async-IndexedDB}} - Asynchronous bits of the API
Other useful pages:
* [[Firefox/Projects/IndexedDB/SQL_Schema|SQLite DB Schema for Storage]]


== Status ==
== Status ==
* <onlyinclude>IN FLIGHT.  Work is underway.  Might have something folks can start to play around with by end of the day Tuesday (4/6/2010).</onlyinclude>
* <onlyinclude>IN FLIGHT.  Work is underway (only on the async API at this time).</onlyinclude>
 
== Goals ==
Implement a prototype of the Indexed Database spec.
 
== Non-Goals ==
 
== Timeline / Milestones ==
 
I'm currently only estimating the time to implement the asynchronous API on non-workers.  This doesn't mean that Mozilla isn't going to support anything more; it's just what I'm starting with.  These are largely listed in dependent order, so the top stuff needs to be done before the bottom stuff.
 
{| border="1" width="100%"
|-
| Feature
| Time Estimate
| Time Actual
| Status
|-
| Implement IDBRequest base class ({{bug|555317}})
| 3 days
| 1 day
| style="background:green;color:white" | COMPLETED
|-
| Implement IDBDatabaseError
| 1 day
|
|
|-
| Implement IDBDatabase, IDBEnvironment, and IndexedDatabaseRequest
| 2 weeks
| 2 days
| style="background:yellow;" | IN PROGRESS
|-
| [[Firefox/Projects/IndexedDB/SQL_Schema|Create SQLite DB Schema for Storage]]
| 1 week
| 1 day
| style="background:yellow;" | IN PROGRESS
|-
| Implement IDBDatabaseRequest
| 3 days
|
|
|-
| Implement IDBObjectStore
| 1 day
|
|
|-
| Implement IDBDatabaseRequest::createObjectStore
| 1 week
|
|
|-
| Implement IDBDatabaseRequest::openObjectStore
| 3 days
|
|
|-
| Implement IDBDatabaseRequest::createIndex
| 1 week
|
|
|-
| Implement IDBDatabaseRequest::openIndex
| 3 days
|
|
|-
| Implement IDBDatabaseRequest::removeObjectStore
| 3 days
|
|
|-
| Implement IDBDatabaseRequest::removeIndex
| 3 days
|
|
|-
| Implement IDBDatabaseRequest::setVersion
| 3 days
|
|
|-
| Implement IDBDatabaseRequest::openTransaction
| 3 days
|
|
|-
| Implement IDBIndex
| 1 day
|
|
|-
| Implement IDBIndexRequest
| 3 days
|
|
|-
| Implement IDBIndexRequest::openObjectCursor
| 3 days
|
|
|-
| Implement IDBIndexRequest::openCursor
| 3 days
|
|
|-
| Implement IDBIndexRequest::put
| 1 week
|
|
|-
| Implement IDBIndexRequest::getObject
| 1 week
|
|
|-
| Implement IDBIndexRequest::get
| 1 week
|
|
|-
| Implement IDBIndexRequest::remove
| 3 days
|
|
|-
| Implement IDBCursor and IDBCursorRequest
| 1 week
|
|
|-
| Implement IDBCursorRequest::update
| 1 week
|
|
|-
| Implement IDBCursorRequest::continue
| 3 days
|
|
|-
| Implement IDBCursorRequest::remove
| 3 days
|
|
|-
| Implement IDBtransactionRequest and IDBTransaction
| 1 week
|}
 
== Requirements ==
 
== Dependencies ==
 
== Testing ==


Will likely setup a project branch to run the vast number of unit tests this is going to need.
== Remaining work for Firefox 4 ==


== Related Projects ==
* Fix transactions to only work until you return to the event loop.
* Deal with spec changes around setVersion.
* Deal with spec changes around non-copying cursors.
* Maybe (?) do sicking's high performance cursors.
* <strike>Implement clear on object stores.</strike>
* Implement error propagation, making several other objects event targets along the way.
* <strike>Event target security.</strike> {{bug|579882}}
* Implement arrays as keys.
* Implement dates as keys.
* <strike>Rename Modify to Put.</strike> {{bug|589334}}
* Find a way to remove databases (need spec agreement).
* <strike>Figure out database size limits.</strike>
* <strike>Figure out database persistence.</strike>
* <strike>Figure out UI for size limits, persistence (email thread ongoing).</strike>
* Bring keyRange creation up to current spec.
* <strike>Remove IDBRequest.abort.</strike>
* Implement Update on index object cursors.

Latest revision as of 05:29, 22 September 2010

Implement the W3C Indexed Database API in Mozilla. The code is being committed to a mozilla-central.

Project Leaders: sdwilsh and bent Bugs:

Other useful pages:

Status

  • IN FLIGHT. Work is underway (only on the async API at this time).

Remaining work for Firefox 4

  • Fix transactions to only work until you return to the event loop.
  • Deal with spec changes around setVersion.
  • Deal with spec changes around non-copying cursors.
  • Maybe (?) do sicking's high performance cursors.
  • Implement clear on object stores.
  • Implement error propagation, making several other objects event targets along the way.
  • Event target security. bug 579882
  • Implement arrays as keys.
  • Implement dates as keys.
  • Rename Modify to Put. bug 589334
  • Find a way to remove databases (need spec agreement).
  • Figure out database size limits.
  • Figure out database persistence.
  • Figure out UI for size limits, persistence (email thread ongoing).
  • Bring keyRange creation up to current spec.
  • Remove IDBRequest.abort.
  • Implement Update on index object cursors.