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 @@ ...@@ -223,7 +223,7 @@
<button class="icon-external" is="paper-icon-button-light"></button> <button class="icon-external" is="paper-icon-button-light"></button>
</div> </div>
</div> </div>
<div class="section"> <div class="section" hidden="[[isControlled_(data.controlledInfo)]]">
<div class="control-line actionable" id="remove-extension" <div class="control-line actionable" id="remove-extension"
on-tap="onRemoveTap_"> on-tap="onRemoveTap_">
<span>$i18n{itemRemoveExtension}</span> <span>$i18n{itemRemoveExtension}</span>
......
...@@ -35,6 +35,14 @@ cr.define('extensions', function() { ...@@ -35,6 +35,14 @@ cr.define('extensions', function() {
this.fire('close'); this.fire('close');
}, },
/**
* @return {boolean}
* @private
*/
isControlled_: function() {
return extensions.isControlled(this.data);
},
/** /**
* @return {boolean} * @return {boolean}
* @private * @private
......
...@@ -232,7 +232,8 @@ ...@@ -232,7 +232,8 @@
<paper-button id="details-button" on-tap="onDetailsTap_"> <paper-button id="details-button" on-tap="onDetailsTap_">
$i18n{itemDetails} $i18n{itemDetails}
</paper-button> </paper-button>
<paper-button id="remove-button" on-tap="onRemoveTap_"> <paper-button id="remove-button" on-tap="onRemoveTap_"
hidden="[[isControlled_(data.controlledInfo)]]">
$i18n{itemRemove} $i18n{itemRemove}
</paper-button> </paper-button>
<paper-button id="errors-button" on-tap="onErrorsTap_" <paper-button id="errors-button" on-tap="onErrorsTap_"
......
...@@ -156,6 +156,14 @@ cr.define('extensions', function() { ...@@ -156,6 +156,14 @@ cr.define('extensions', function() {
this.delegate.repairItem(this.data.id); this.delegate.repairItem(this.data.id);
}, },
/**
* @return {boolean}
* @private
*/
isControlled_: function() {
return extensions.isControlled(this.data);
},
/** /**
* @return {boolean} * @return {boolean}
* @private * @private
......
...@@ -29,6 +29,14 @@ cr.define('extensions', function() { ...@@ -29,6 +29,14 @@ cr.define('extensions', function() {
assertNotReached(); 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 * Returns true if the user can change whether or not the extension is
* enabled. * enabled.
...@@ -116,6 +124,7 @@ cr.define('extensions', function() { ...@@ -116,6 +124,7 @@ cr.define('extensions', function() {
} }
return { return {
isControlled: isControlled,
isEnabled: isEnabled, isEnabled: isEnabled,
userCanChangeEnablement: userCanChangeEnablement, userCanChangeEnablement: userCanChangeEnablement,
getItemSource: getItemSource, getItemSource: getItemSource,
......
...@@ -174,6 +174,11 @@ TEST_F('CrExtensionsBrowserTest', 'ExtensionItemEnableToggleTest', function() { ...@@ -174,6 +174,11 @@ TEST_F('CrExtensionsBrowserTest', 'ExtensionItemEnableToggleTest', function() {
mocha.grep(assert(extension_item_tests.TestNames.EnableToggle)).run(); 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 // Extension Detail View Tests
......
...@@ -72,6 +72,7 @@ cr.define('extension_item_tests', function() { ...@@ -72,6 +72,7 @@ cr.define('extension_item_tests', function() {
Warnings: 'warnings', Warnings: 'warnings',
SourceIndicator: 'source indicator', SourceIndicator: 'source indicator',
EnableToggle: 'toggle is disabled when necessary', EnableToggle: 'toggle is disabled when necessary',
RemoveButton: 'remove button hidden when necessary',
}; };
function registerTests() { function registerTests() {
...@@ -242,6 +243,13 @@ cr.define('extension_item_tests', function() { ...@@ -242,6 +243,13 @@ cr.define('extension_item_tests', function() {
Polymer.dom.flush(); Polymer.dom.flush();
expectTrue(item.$['enable-toggle'].disabled); 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