Commit fb85136d authored by dpapad's avatar dpapad Committed by Commit Bot

MD Extensions: Surface ExtensionInfo runtimeWarnings in the UI.

Bug: 800773
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: I546e25b3748e455449ee3c0a541c5a6658ee2504
Reviewed-on: https://chromium-review.googlesource.com/884847
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: default avatarDevlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532246}
parent 0f6bb090
...@@ -256,6 +256,12 @@ ...@@ -256,6 +256,12 @@
</div> </div>
<template is="dom-if" if="[[hasWarnings_(data.*)]]"> <template is="dom-if" if="[[hasWarnings_(data.*)]]">
<div id="warnings" > <div id="warnings" >
<div id="runtime-warnings" aria-describedby="a11yAssociation"
hidden$="[[!data.runtimeWarnings.length]]">
<template is="dom-repeat" items="[[data.runtimeWarnings]]">
[[item]]
</template>
</div>
<div id="suspicious-warning" aria-describedby="a11yAssociation" <div id="suspicious-warning" aria-describedby="a11yAssociation"
hidden$="[[!data.disableReasons.suspiciousInstall]]"> hidden$="[[!data.disableReasons.suspiciousInstall]]">
$i18n{itemSuspiciousInstall} $i18n{itemSuspiciousInstall}
......
...@@ -352,7 +352,7 @@ cr.define('extensions', function() { ...@@ -352,7 +352,7 @@ cr.define('extensions', function() {
hasWarnings_: function() { hasWarnings_: function() {
return this.data.disableReasons.corruptInstall || return this.data.disableReasons.corruptInstall ||
this.data.disableReasons.suspiciousInstall || this.data.disableReasons.suspiciousInstall ||
!!this.data.blacklistText; this.data.runtimeWarnings.length > 0 || !!this.data.blacklistText;
}, },
/** /**
......
...@@ -242,6 +242,7 @@ cr.define('extensions', function() { ...@@ -242,6 +242,7 @@ cr.define('extensions', function() {
case EventType.ERROR_ADDED: case EventType.ERROR_ADDED:
case EventType.ERRORS_REMOVED: case EventType.ERRORS_REMOVED:
case EventType.PREFS_CHANGED: case EventType.PREFS_CHANGED:
case EventType.WARNINGS_CHANGED:
// |extensionInfo| can be undefined in the case of an extension // |extensionInfo| can be undefined in the case of an extension
// being unloaded right before uninstallation. There's nothing to do // being unloaded right before uninstallation. There's nothing to do
// here. // here.
......
...@@ -220,50 +220,49 @@ cr.define('extension_item_tests', function() { ...@@ -220,50 +220,49 @@ cr.define('extension_item_tests', function() {
}); });
test(assert(TestNames.Warnings), function() { test(assert(TestNames.Warnings), function() {
var hasCorruptedWarning = function() { const kCorrupt = 1 << 0;
return extension_test_util.isVisible(item, '#corrupted-warning'); const kSuspicious = 1 << 1;
}; const kBlacklisted = 1 << 2;
var hasSuspiciousWarning = function() { const kRuntime = 1 << 3;
return extension_test_util.isVisible(item, '#suspicious-warning');
}; function assertWarnings(mask) {
var hasBlacklistedWarning = function() { const isVisible = extension_test_util.isVisible;
return extension_test_util.isVisible(item, '#blacklisted-warning'); assertEquals(
}; !!(mask & kCorrupt), isVisible(item, '#corrupted-warning'));
assertEquals(
expectFalse(hasCorruptedWarning()); !!(mask & kSuspicious), isVisible(item, '#suspicious-warning'));
expectFalse(hasSuspiciousWarning()); assertEquals(
expectFalse(hasBlacklistedWarning()); !!(mask & kBlacklisted), isVisible(item, '#blacklisted-warning'));
assertEquals(!!(mask & kRuntime), isVisible(item, '#runtime-warnings'));
}
assertWarnings(0);
item.set('data.disableReasons.corruptInstall', true); item.set('data.disableReasons.corruptInstall', true);
Polymer.dom.flush(); Polymer.dom.flush();
expectTrue(hasCorruptedWarning()); assertWarnings(kCorrupt);
expectFalse(hasSuspiciousWarning());
expectFalse(hasBlacklistedWarning());
item.set('data.disableReasons.suspiciousInstall', true); item.set('data.disableReasons.suspiciousInstall', true);
Polymer.dom.flush(); Polymer.dom.flush();
expectTrue(hasCorruptedWarning()); assertWarnings(kCorrupt | kSuspicious);
expectTrue(hasSuspiciousWarning());
expectFalse(hasBlacklistedWarning());
item.set('data.blacklistText', 'This item is blacklisted'); item.set('data.blacklistText', 'This item is blacklisted');
Polymer.dom.flush(); Polymer.dom.flush();
expectTrue(hasCorruptedWarning()); assertWarnings(kCorrupt | kSuspicious | kBlacklisted);
expectTrue(hasSuspiciousWarning());
expectTrue(hasBlacklistedWarning());
item.set('data.blacklistText', undefined); item.set('data.blacklistText', undefined);
Polymer.dom.flush(); Polymer.dom.flush();
expectTrue(hasCorruptedWarning()); assertWarnings(kCorrupt | kSuspicious);
expectTrue(hasSuspiciousWarning());
expectFalse(hasBlacklistedWarning()); item.set('data.runtimeWarnings', ['Dummy warning']);
Polymer.dom.flush();
assertWarnings(kCorrupt | kSuspicious | kRuntime);
item.set('data.disableReasons.corruptInstall', false); item.set('data.disableReasons.corruptInstall', false);
item.set('data.disableReasons.suspiciousInstall', false); item.set('data.disableReasons.suspiciousInstall', false);
item.set('data.runtimeWarnings', []);
Polymer.dom.flush(); Polymer.dom.flush();
expectFalse(hasCorruptedWarning()); assertWarnings(0);
expectFalse(hasSuspiciousWarning());
expectFalse(hasBlacklistedWarning());
}); });
test(assert(TestNames.SourceIndicator), function() { test(assert(TestNames.SourceIndicator), function() {
......
...@@ -210,6 +210,7 @@ cr.define('extension_test_util', function() { ...@@ -210,6 +210,7 @@ cr.define('extension_test_util', function() {
manifestErrors: [], manifestErrors: [],
name: 'Wonderful Extension', name: 'Wonderful Extension',
runtimeErrors: [], runtimeErrors: [],
runtimeWarnings: [],
permissions: [], permissions: [],
state: 'ENABLED', state: 'ENABLED',
type: 'EXTENSION', type: 'EXTENSION',
......
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