Index: ui/webui/resources/js/cr.js |
diff --git a/ui/webui/resources/js/cr.js b/ui/webui/resources/js/cr.js |
index 94c7553714cdc167a2c7bf87009f7416b80aae33..b403f44c5689babb0644253381961e38f3014be0 100644 |
--- a/ui/webui/resources/js/cr.js |
+++ b/ui/webui/resources/js/cr.js |
@@ -294,6 +294,24 @@ var cr = function() { |
}; |
} |
+ /** |
+ * Forwards public APIs to private implementations. |
+ * @param {Function} ctor Constructor that have private implementations in its |
+ * prototype. |
+ * @param {Array.<string>} methods List of public method names that have their |
+ * underscored counterparts in constructor's prototype. |
+ * @param {string=} opt_target Selector for target node. |
+ */ |
+ function makePublic(ctor, methods, opt_target) { |
+ methods.forEach(function(method) { |
+ ctor[method] = function() { |
+ var target = opt_target ? document.getElementById(opt_target) : |
+ ctor.getInstance(); |
+ return target[method + '_'].apply(target, arguments); |
+ }; |
+ }); |
+ } |
+ |
return { |
addSingletonGetter: addSingletonGetter, |
createUid: createUid, |
@@ -303,6 +321,7 @@ var cr = function() { |
dispatchSimpleEvent: dispatchSimpleEvent, |
exportPath: exportPath, |
getUid: getUid, |
+ makePublic: makePublic, |
PropertyKind: PropertyKind, |
get doc() { |