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

Unified Diff: tools/dom/templates/html/impl/impl_IDBFactory.darttemplate

Issue 12159005: Dartifying some IndexedDB APIs. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
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;
+}

Powered by Google App Engine
This is Rietveld 408576698