Index: Source/devtools/front_end/settings/SettingsScreen.js |
diff --git a/Source/devtools/front_end/settings/SettingsScreen.js b/Source/devtools/front_end/settings/SettingsScreen.js |
index 6a6402c754c69b5086a70c596588cdb425d117d6..5bc3b54a00a99c1590a3e2311984902876bcd780 100644 |
--- a/Source/devtools/front_end/settings/SettingsScreen.js |
+++ b/Source/devtools/front_end/settings/SettingsScreen.js |
@@ -695,7 +695,7 @@ WebInspector.SettingsList = function(columns, itemRenderer) |
this.element.tabIndex = -1; |
this._itemRenderer = itemRenderer; |
/** @type {!Object.<?string, !Element>} */ |
- this._listItems = {}; |
+ this._listItems = { __proto__: null }; |
/** @type {!Array.<?string>} */ |
this._ids = []; |
this._columns = columns; |
@@ -763,7 +763,8 @@ WebInspector.SettingsList.prototype = { |
*/ |
removeItem: function(id) |
{ |
- this._listItems[id].remove(); |
+ if (this._listItems[id]) |
+ this._listItems[id].remove(); |
delete this._listItems[id]; |
this._ids.remove(id); |
if (id === this._selectedId) { |
@@ -895,6 +896,30 @@ WebInspector.EditableSettingsList.prototype = { |
}, |
/** |
+ * @param {?string} itemId |
+ */ |
+ refreshItem: function(itemId) |
+ { |
+ if (!itemId) |
+ return; |
+ var listItem = this._listItems[itemId]; |
+ if (!listItem) |
+ return; |
+ for (var i = 0; i < this._columns.length; ++i) { |
+ var column = this._columns[i]; |
+ var columnId = column.id; |
+ |
+ var value = this._valuesProvider(itemId, columnId); |
+ var textElement = this._textElements[itemId][columnId]; |
+ textElement.textContent = value; |
+ textElement.title = value; |
+ |
+ var editElement = this._editInputElements[itemId][columnId]; |
+ this._setEditElementValue(editElement, value || ""); |
+ } |
+ }, |
+ |
+ /** |
* @param {!Element} columnElement |
* @param {{id: string, placeholder: (string|undefined), options: (!Array.<string>|undefined)}} column |
* @param {?string} itemId |