| Index: chrome/browser/resources/md_extensions/item.js
|
| diff --git a/chrome/browser/resources/md_extensions/item.js b/chrome/browser/resources/md_extensions/item.js
|
| index ae9df0a7c510da749d1ef8c53facb9ac990115f7..cd03c28475eade675800bdb1e288072d90358a55 100644
|
| --- a/chrome/browser/resources/md_extensions/item.js
|
| +++ b/chrome/browser/resources/md_extensions/item.js
|
| @@ -47,6 +47,9 @@ cr.define('extensions', function() {
|
| inspectItemView: assertNotReached,
|
|
|
| /** @param {string} id */
|
| + reloadItem: assertNotReached,
|
| +
|
| + /** @param {string} id */
|
| repairItem: assertNotReached,
|
|
|
| /** @param {string} id */
|
| @@ -135,7 +138,17 @@ cr.define('extensions', function() {
|
| * @private
|
| */
|
| onInspectTap_: function(e) {
|
| - this.delegate.inspectItemView(this.data.id, e.model.item);
|
| + this.delegate.inspectItemView(this.data.id, this.data.views[0]);
|
| + },
|
| +
|
| + /** @private */
|
| + onExtraInspectTap_: function() {
|
| + this.fire('extension-item-show-details', {data: this.data});
|
| + },
|
| +
|
| + /** @private */
|
| + onReloadTap_: function() {
|
| + this.delegate.reloadItem(this.data.id);
|
| },
|
|
|
| /** @private */
|
| @@ -160,9 +173,34 @@ cr.define('extensions', function() {
|
| assertNotReached(); // FileNotFound.
|
| },
|
|
|
| - /** @private */
|
| + /**
|
| + * Returns true if the enable toggle should be shown.
|
| + * @return {boolean}
|
| + * @private
|
| + */
|
| + showEnableToggle_: function() {
|
| + return !this.isTerminated_() && !this.data.disableReasons.corruptInstall;
|
| + },
|
| +
|
| + /**
|
| + * Returns true if the extension is in the terminated state.
|
| + * @return {boolean}
|
| + * @private
|
| + */
|
| + isTerminated_: function() {
|
| + return this.data.state ==
|
| + chrome.developerPrivate.ExtensionState.TERMINATED;
|
| + },
|
| +
|
| + /**
|
| + * return {string}
|
| + * @private
|
| + */
|
| computeClasses_: function() {
|
| - return this.isEnabled_() ? 'enabled' : 'disabled';
|
| + var classes = this.isEnabled_() ? 'enabled' : 'disabled';
|
| + if (this.inDevMode)
|
| + classes += ' dev-mode';
|
| + return classes;
|
| },
|
|
|
| /**
|
| @@ -194,10 +232,19 @@ cr.define('extensions', function() {
|
| },
|
|
|
| /**
|
| - * @param {chrome.developerPrivate.ExtensionView} view
|
| + * @return {boolean}
|
| * @private
|
| */
|
| - computeInspectLabel_: function(view) {
|
| + computeInspectViewsHidden_: function() {
|
| + return !this.data.views || this.data.views.length == 0;
|
| + },
|
| +
|
| + /**
|
| + * @return {string}
|
| + * @private
|
| + */
|
| + computeFirstInspectLabel_: function() {
|
| + var view = this.data.views[0];
|
| // Trim the "chrome-extension://<id>/".
|
| var url = new URL(view.url);
|
| var label = view.url;
|
| @@ -210,6 +257,10 @@ cr.define('extensions', function() {
|
| (view.renderProcessId == -1 ?
|
| ' ' + this.i18n('viewInactive') : '') +
|
| (view.isIframe ? ' ' + this.i18n('viewIframe') : '');
|
| + var index = this.data.views.indexOf(view);
|
| + assert(index >= 0);
|
| + if (index < this.data.views.length - 1)
|
| + label += ',';
|
| return label;
|
| },
|
|
|
| @@ -217,6 +268,23 @@ cr.define('extensions', function() {
|
| * @return {boolean}
|
| * @private
|
| */
|
| + computeExtraViewsHidden_: function() {
|
| + return this.data.views.length <= 1;
|
| + },
|
| +
|
| + /**
|
| + * @return {string}
|
| + * @private
|
| + */
|
| + computeExtraInspectLabel_: function() {
|
| + return loadTimeData.getStringF('itemInspectViewsExtra',
|
| + this.data.views.length - 1);
|
| + },
|
| +
|
| + /**
|
| + * @return {boolean}
|
| + * @private
|
| + */
|
| hasWarnings_: function() {
|
| return this.data.disableReasons.corruptInstall ||
|
| this.data.disableReasons.suspiciousInstall ||
|
|
|