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

Unified Diff: chrome/browser/resources/options2/certificate_tree.js

Issue 8895023: Options2: Pull the trigger. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: DIAF. Created 9 years 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: chrome/browser/resources/options2/certificate_tree.js
diff --git a/chrome/browser/resources/options2/certificate_tree.js b/chrome/browser/resources/options2/certificate_tree.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee5d0755879578c339339bb7acd09f06be1df017
--- /dev/null
+++ b/chrome/browser/resources/options2/certificate_tree.js
@@ -0,0 +1,128 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+cr.define('options', function() {
+ const Tree = cr.ui.Tree;
+ const TreeItem = cr.ui.TreeItem;
+
+ /**
+ * Creates a new tree item for certificate data.
+ * @param {Object=} data Data used to create a certificate tree item.
+ * @constructor
+ * @extends {TreeItem}
+ */
+ function CertificateTreeItem(data) {
+ // TODO(mattm): other columns
+ var treeItem = new TreeItem({
+ label: data.name,
+ data: data
+ });
+ treeItem.__proto__ = CertificateTreeItem.prototype;
+
+ if (data.icon) {
+ treeItem.icon = data.icon;
+ }
+
+ if (data.untrusted) {
+ var badge = document.createElement('span');
+ badge.setAttribute('class', 'certUntrusted');
+ badge.textContent = localStrings.getString("badgeCertUntrusted");
+ treeItem.labelElement.insertBefore(
+ badge, treeItem.labelElement.firstChild);
+ }
+
+ return treeItem;
+ }
+
+ CertificateTreeItem.prototype = {
+ __proto__: TreeItem.prototype,
+
+ /**
+ * The tree path id/.
+ * @type {string}
+ */
+ get pathId() {
+ var parent = this.parentItem;
+ if (parent && parent instanceof CertificateTreeItem) {
+ return parent.pathId + ',' + this.data.id;
+ } else {
+ return this.data.id;
+ }
+ }
+ };
+
+ /**
+ * Creates a new cookies tree.
+ * @param {Object=} opt_propertyBag Optional properties.
+ * @constructor
+ * @extends {Tree}
+ */
+ var CertificatesTree = cr.ui.define('tree');
+
+ CertificatesTree.prototype = {
+ __proto__: Tree.prototype,
+
+ /** @inheritDoc */
+ decorate: function() {
+ Tree.prototype.decorate.call(this);
+ this.treeLookup_ = {};
+ },
+
+ /** @inheritDoc */
+ addAt: function(child, index) {
+ Tree.prototype.addAt.call(this, child, index);
+ if (child.data && child.data.id)
+ this.treeLookup_[child.data.id] = child;
+ },
+
+ /** @inheritDoc */
+ remove: function(child) {
+ Tree.prototype.remove.call(this, child);
+ if (child.data && child.data.id)
+ delete this.treeLookup_[child.data.id];
+ },
+
+ /**
+ * Clears the tree.
+ */
+ clear: function() {
+ // Remove all fields without recreating the object since other code
+ // references it.
+ for (var id in this.treeLookup_){
+ delete this.treeLookup_[id];
+ }
+ this.textContent = '';
+ },
+
+ /**
+ * Populate the tree.
+ * @param {Array} nodesData Nodes data array.
+ */
+ populate: function(nodesData) {
+ this.clear();
+
+ for (var i = 0; i < nodesData.length; ++i) {
+ var subnodes = nodesData[i]['subnodes'];
+ delete nodesData[i]['subnodes'];
+
+ var item = new CertificateTreeItem(nodesData[i]);
+ this.addAt(item, i);
+
+ for (var j = 0; j < subnodes.length; ++j) {
+ var subitem = new CertificateTreeItem(subnodes[j]);
+ item.addAt(subitem, j);
+ }
+ // Make tree expanded by default.
+ item.expanded = true;
+ }
+
+ cr.dispatchSimpleEvent(this, 'change');
+ },
+ };
+
+ return {
+ CertificatesTree: CertificatesTree
+ };
+});
+

Powered by Google App Engine
This is Rietveld 408576698