| Index: tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
|
| diff --git a/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate b/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
|
| index ec18dba4bd4bf522d8859300da861da6fcaebb82..595a2f6c4d0cf78b66c3d9d09a8b8d01b9fed2e6 100644
|
| --- a/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
|
| +++ b/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
|
| @@ -19,5 +19,55 @@ $else
|
| $endif
|
| }
|
|
|
| + @DomName('IDBFactory.open')
|
| + Future<Database> open(String name,
|
| + {int version, void onUpgradeNeeded(VersionChangeEvent)}) {
|
| + try {
|
| + var request;
|
| + if (version != null) {
|
| + request = $dom_open(name, version);
|
| + } else {
|
| + request = $dom_open(name);
|
| + }
|
| +
|
| + if (onUpgradeNeeded != null) {
|
| + request.onUpgradeNeeded.listen(onUpgradeNeeded);
|
| + }
|
| + return _completeRequest(request, new Completer<Database>());
|
| + } catch (e) {
|
| + return new Future.immediateError(e);
|
| + }
|
| + }
|
| +
|
| + @DomName('IDBFactory.open')
|
| + Future<IdbFactory> deleteDatabase(String name,
|
| + {void onBlocked(Event)}) {
|
| + try {
|
| + var request = $dom_deleteDatabase(name);
|
| +
|
| + if (onBlocked != null) {
|
| + request.onBlocked.listen(onBlocked);
|
| + }
|
| + _completeRequest(request, new Completer<Database>());
|
| + } catch (e) {
|
| + return new Future.immediateError(e);
|
| + }
|
| + }
|
| +
|
| $!MEMBERS
|
| }
|
| +
|
| +
|
| +/**
|
| + * Ties a request to a completer, so the completer is completed when it succeeds
|
| + * and errors out when the request errors.
|
| + */
|
| +Future _completeRequest(Request request, Completer completer) {
|
| + request.onSuccess.listen((e) {
|
| + completer.complete(request.result);
|
| + });
|
| + request.onError.listen((e) {
|
| + completer.completeError(e);
|
| + });
|
| + return completer.future;
|
| +}
|
|
|