Commit bd19219d authored by Oleg Davydov's avatar Oleg Davydov Committed by Commit Bot

[Extension] Hide "Remove" button for normal-installed extensions

Policy-based extensions can be normal-installed, when user can disable
then and enable back, but may not uninstall these extensions. But on the
chrome://extensions page there was a aconfusing "Remove" button for
normal-installed extension also, which did nothing.

This CL uses more appropriate flag from ExtensionInfo structure to
detect whether he "Remove" button should appear or not, therefore for
normal-installed extensions this button would not appear anymore.

Bug: 1048118
Change-Id: I9fff69b861095962f8cf765bedc525516031c465
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2219893Reviewed-by: default avatarDevlin <rdevlin.cronin@chromium.org>
Commit-Queue: Oleg Davydov <burunduk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#776478}
parent 59477842
......@@ -401,7 +401,7 @@
</div>
</div>
<cr-link-row class="hr" id="remove-extension"
hidden="[[isControlled_(data.controlledInfo)]]"
hidden="[[data.mustRemainInstalled]]"
label="$i18n{itemRemoveExtension}" on-click="onRemoveTap_">
</cr-link-row>
</div>
......
......@@ -31,7 +31,7 @@ import {afterNextRender, html, Polymer} from 'chrome://resources/polymer/v3_0/po
import {ItemDelegate} from './item.js';
import {ItemBehavior} from './item_behavior.js';
import {computeInspectableViewLabel, EnableControl, getEnableControl, getItemSource, getItemSourceString, isControlled, isEnabled, userCanChangeEnablement} from './item_util.js';
import {computeInspectableViewLabel, EnableControl, getEnableControl, getItemSource, getItemSourceString, isEnabled, userCanChangeEnablement} from './item_util.js';
import {navigation, Page} from './navigation_helper.js';
Polymer({
......@@ -128,14 +128,6 @@ Polymer({
navigation.navigateTo({page: Page.LIST});
},
/**
* @return {boolean}
* @private
*/
isControlled_() {
return isControlled(this.data);
},
/**
* @return {boolean}
* @private
......
......@@ -279,7 +279,7 @@
</cr-button>
<cr-button id="remove-button" on-click="onRemoveTap_"
aria-describedby="a11yAssociation"
hidden="[[isControlled_(data.controlledInfo)]]">
hidden="[[data.mustRemainInstalled]]">
$i18n{remove}
</cr-button>
<template is="dom-if" if="[[shouldShowErrorsButton_(data.*)]]">
......
......@@ -27,7 +27,7 @@ import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {flush, html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {ItemBehavior} from './item_behavior.js';
import {computeInspectableViewLabel, EnableControl, getEnableControl, getItemSource, getItemSourceString, isControlled, isEnabled, SourceType, userCanChangeEnablement} from './item_util.js';
import {computeInspectableViewLabel, EnableControl, getEnableControl, getItemSource, getItemSourceString, isEnabled, SourceType, userCanChangeEnablement} from './item_util.js';
import {navigation, Page} from './navigation_helper.js';
/** @interface */
......@@ -272,14 +272,6 @@ Polymer({
this.delegate.repairItem(this.data.id);
},
/**
* @return {boolean}
* @private
*/
isControlled_() {
return isControlled(this.data);
},
/**
* @return {boolean}
* @private
......
......@@ -43,14 +43,6 @@ export function isEnabled(state) {
assertNotReached();
}
/**
* @param {!chrome.developerPrivate.ExtensionInfo} extensionInfo
* @return {boolean} Whether the extension is controlled.
*/
export function isControlled(extensionInfo) {
return !!extensionInfo.controlledInfo;
}
/**
* Returns true if the user can change whether or not the extension is
* enabled.
......
......@@ -375,7 +375,7 @@ suite(extension_item_tests.suiteName, function() {
test(assert(extension_item_tests.TestNames.RemoveButton), function() {
expectFalse(item.$['remove-button'].hidden);
item.set('data.controlledInfo', {type: 'POLICY', text: 'policy'});
item.set('data.mustRemainInstalled', true);
flush();
expectTrue(item.$['remove-button'].hidden);
});
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment