Commit 8df8e92d authored by Scott Chen's avatar Scott Chen Committed by Commit Bot

MD Extensions: hide remove button when extension is controlled

Bug: 750341
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: I26a75ee076b3a9a5d22e18b71e0a35105ee7b552
Reviewed-on: https://chromium-review.googlesource.com/592309
Commit-Queue: Scott Chen <scottchen@chromium.org>
Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491267}
parent 5a06a252
......@@ -223,7 +223,7 @@
<button class="icon-external" is="paper-icon-button-light"></button>
</div>
</div>
<div class="section">
<div class="section" hidden="[[isControlled_(data.controlledInfo)]]">
<div class="control-line actionable" id="remove-extension"
on-tap="onRemoveTap_">
<span>$i18n{itemRemoveExtension}</span>
......
......@@ -35,6 +35,14 @@ cr.define('extensions', function() {
this.fire('close');
},
/**
* @return {boolean}
* @private
*/
isControlled_: function() {
return extensions.isControlled(this.data);
},
/**
* @return {boolean}
* @private
......
......@@ -232,7 +232,8 @@
<paper-button id="details-button" on-tap="onDetailsTap_">
$i18n{itemDetails}
</paper-button>
<paper-button id="remove-button" on-tap="onRemoveTap_">
<paper-button id="remove-button" on-tap="onRemoveTap_"
hidden="[[isControlled_(data.controlledInfo)]]">
$i18n{itemRemove}
</paper-button>
<paper-button id="errors-button" on-tap="onErrorsTap_"
......
......@@ -156,6 +156,14 @@ cr.define('extensions', function() {
this.delegate.repairItem(this.data.id);
},
/**
* @return {boolean}
* @private
*/
isControlled_: function() {
return extensions.isControlled(this.data);
},
/**
* @return {boolean}
* @private
......
......@@ -29,6 +29,14 @@ cr.define('extensions', function() {
assertNotReached();
}
/**
* @param {!chrome.developerPrivate.ExtensionInfo} extensionInfo
* @return {boolean} Whether the extension is controlled.
*/
function isControlled(extensionInfo) {
return !!extensionInfo.controlledInfo;
}
/**
* Returns true if the user can change whether or not the extension is
* enabled.
......@@ -116,6 +124,7 @@ cr.define('extensions', function() {
}
return {
isControlled: isControlled,
isEnabled: isEnabled,
userCanChangeEnablement: userCanChangeEnablement,
getItemSource: getItemSource,
......
......@@ -174,6 +174,11 @@ TEST_F('CrExtensionsBrowserTest', 'ExtensionItemEnableToggleTest', function() {
mocha.grep(assert(extension_item_tests.TestNames.EnableToggle)).run();
});
TEST_F('CrExtensionsBrowserTest', 'ExtensionItemRemoveButtonTest', function() {
extension_item_tests.registerTests();
mocha.grep(assert(extension_item_tests.TestNames.RemoveButton)).run();
});
////////////////////////////////////////////////////////////////////////////////
// Extension Detail View Tests
......
......@@ -72,6 +72,7 @@ cr.define('extension_item_tests', function() {
Warnings: 'warnings',
SourceIndicator: 'source indicator',
EnableToggle: 'toggle is disabled when necessary',
RemoveButton: 'remove button hidden when necessary',
};
function registerTests() {
......@@ -242,6 +243,13 @@ cr.define('extension_item_tests', function() {
Polymer.dom.flush();
expectTrue(item.$['enable-toggle'].disabled);
});
test(assert(TestNames.RemoveButton), function() {
expectFalse(item.$['remove-button'].hidden);
item.set('data.controlledInfo', {type: 'POLICY', text: 'policy'});
Polymer.dom.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