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

Unified Diff: tools/dom/src/chrome/chrome.dart

Issue 12049030: Initial commit for Chrome.* APIs in Dart (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Renamed _utils.dart to utils.dart Created 7 years, 11 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/src/chrome/chrome.dart
diff --git a/tools/dom/src/chrome/chrome.dart b/tools/dom/src/chrome/chrome.dart
new file mode 100644
index 0000000000000000000000000000000000000000..9afe2713d479e62234f1b3a0539f0259bc034bd1
--- /dev/null
+++ b/tools/dom/src/chrome/chrome.dart
@@ -0,0 +1,67 @@
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// TODO(sashab): Change all chrome-API object types to be JS-bound, so that the
+// proxy types are not needed. Instead, creation of an object also creates its
+// JS counterpart, and all objects are proxies from the start.
+part of chrome;
+
+// chrome.app
+class $API_ChromeApp {
vsm 2013/01/23 20:44:50 Why the "$API_"?
sashab 2013/01/23 22:24:53 To distinguish a "ChromeApp" type from this "chrom
+ /*
+ * JS Variable
+ */
+ Object _jsObject;
+
+ /*
+ * Members
+ */
+ $API_ChromeAppWindow window;
+ $API_ChromeAppRuntime runtime;
+
+ /*
+ * Constructor
+ */
+ $API_ChromeApp(this._jsObject) {
+ var window_object = JS('', '#.window', this._jsObject);
+ if (window_object == null)
+ throw new UnsupportedError('Not supported by current browser.');
+ window = new $API_ChromeAppWindow(window_object);
+
+ var runtime_object = JS('', '#.runtime', this._jsObject);
+ if (runtime_object == null)
+ throw new UnsupportedError('Not supported by current browser.');
+ runtime = new $API_ChromeAppRuntime(runtime_object);
+ }
+}
+
+// chrome
+class $API_Chrome {
+ /*
+ * JS Variable
+ */
+ Object _jsObject;
+
+ /*
+ * Members
+ */
+ $API_ChromeApp app;
+
+ /*
+ * Constructor
+ */
+ $API_Chrome() {
+ this._jsObject = JS("Object", "chrome");
+ if (this._jsObject == null)
+ throw new UnsupportedError('Not supported by current browser.');
+
+ var app_object = JS('', '#.app', this._jsObject);
+ if (app_object == null)
+ throw new UnsupportedError('Not supported by current browser.');
+ app = new $API_ChromeApp(app_object);
+ }
+}
+
+// The final chrome objects
+final $API_Chrome chrome = new $API_Chrome();

Powered by Google App Engine
This is Rietveld 408576698