Commit dc67a685 authored by Rainhard Findling's avatar Rainhard Findling Committed by Commit Bot

Safety check UI: generalized child UI status

* Adds a generalized UI status for safety check children. This status
  defines the default look of the child. It simplifies the code for
  children and prepares the safety check UI for future refactoring to
  achieve better encapsulation.

Bug: 1015841
Change-Id: Idf88770d6bcfcf455008eddb3ca02b150d017d0e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2117730
Commit-Queue: Rainhard Findling <rainhard@chromium.org>
Reviewed-by: default avatarEsmael Elmoslimany <aee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#753205}
parent dbd2b671
...@@ -53,6 +53,17 @@ const ParentStatus = { ...@@ -53,6 +53,17 @@ const ParentStatus = {
AFTER: 2, AFTER: 2,
}; };
/**
* UI states a safety check child can be in. Defines the basic UI of the child.
* @enum {number}
*/
const ChildUiStatus = {
RUNNING: 0,
SAFE: 1,
INFO: 2,
WARNING: 3,
};
/** /**
* @typedef {{ * @typedef {{
* newState: settings.SafetyCheckUpdatesStatus, * newState: settings.SafetyCheckUpdatesStatus,
...@@ -350,6 +361,60 @@ Polymer({ ...@@ -350,6 +361,60 @@ Polymer({
return this.parentStatus_ != ParentStatus.BEFORE; return this.parentStatus_ != ParentStatus.BEFORE;
}, },
/**
* Returns the default icon for a safety check child in the specified state.
* @private
* @param {ChildUiStatus} childUiStatus
* @return {?string}
*/
getChildUiIcon_: function(childUiStatus) {
switch (childUiStatus) {
case ChildUiStatus.RUNNING:
return null;
case ChildUiStatus.SAFE:
return 'cr:check';
case ChildUiStatus.INFO:
return 'cr:info';
case ChildUiStatus.WARNING:
return 'cr:warning';
default:
assertNotReached();
}
},
/**
* Returns the default icon src for animated icons for a safety check child
* in the specified state.
* @private
* @param {ChildUiStatus} childUiStatus
* @return {?string}
*/
getChildUiIconSrc_: function(childUiStatus) {
if (childUiStatus == ChildUiStatus.RUNNING) {
return 'chrome://resources/images/throbber_small.svg';
}
return null;
},
/**
* Returns the default icon class for a safety check child in the specified
* state.
* @private
* @param {ChildUiStatus} childUiStatus
* @return {string}
*/
getChildUiIconClass_: function(childUiStatus) {
switch (childUiStatus) {
case ChildUiStatus.RUNNING:
case ChildUiStatus.SAFE:
return 'icon-blue';
case ChildUiStatus.WARNING:
return 'icon-red';
default:
return '';
}
},
/** /**
* @private * @private
* @return {boolean} * @return {boolean}
...@@ -373,39 +438,41 @@ Polymer({ ...@@ -373,39 +438,41 @@ Polymer({
}, },
/** /**
* @return {ChildUiStatus}
* @private * @private
* @return {?string}
*/ */
getUpdatesIcon_: function() { getUpdatesUiStatus_: function() {
switch (this.updatesStatus_) { switch (this.updatesStatus_) {
case settings.SafetyCheckUpdatesStatus.CHECKING: case settings.SafetyCheckUpdatesStatus.CHECKING:
case settings.SafetyCheckUpdatesStatus.UPDATING: case settings.SafetyCheckUpdatesStatus.UPDATING:
return null; return ChildUiStatus.RUNNING;
case settings.SafetyCheckUpdatesStatus.UPDATED: case settings.SafetyCheckUpdatesStatus.UPDATED:
return 'cr:check'; return ChildUiStatus.SAFE;
case settings.SafetyCheckUpdatesStatus.RELAUNCH: case settings.SafetyCheckUpdatesStatus.RELAUNCH:
case settings.SafetyCheckUpdatesStatus.DISABLED_BY_ADMIN: case settings.SafetyCheckUpdatesStatus.DISABLED_BY_ADMIN:
case settings.SafetyCheckUpdatesStatus.FAILED_OFFLINE: case settings.SafetyCheckUpdatesStatus.FAILED_OFFLINE:
return 'cr:info'; return ChildUiStatus.INFO;
case settings.SafetyCheckUpdatesStatus.FAILED: case settings.SafetyCheckUpdatesStatus.FAILED:
return 'cr:warning'; return ChildUiStatus.WARNING;
default: default:
assertNotReached(); assertNotReached();
} }
}, },
/**
* @private
* @return {?string}
*/
getUpdatesIcon_: function() {
return this.getChildUiIcon_(this.getUpdatesUiStatus_());
},
/** /**
* @private * @private
* @return {?string} * @return {?string}
*/ */
getUpdatesIconSrc_: function() { getUpdatesIconSrc_: function() {
switch (this.updatesStatus_) { return this.getChildUiIconSrc_(this.getUpdatesUiStatus_());
case settings.SafetyCheckUpdatesStatus.CHECKING:
case settings.SafetyCheckUpdatesStatus.UPDATING:
return 'chrome://resources/images/throbber_small.svg';
default:
return null;
}
}, },
/** /**
...@@ -413,16 +480,7 @@ Polymer({ ...@@ -413,16 +480,7 @@ Polymer({
* @return {string} * @return {string}
*/ */
getUpdatesIconClass_: function() { getUpdatesIconClass_: function() {
switch (this.updatesStatus_) { return this.getChildUiIconClass_(this.getUpdatesUiStatus_());
case settings.SafetyCheckUpdatesStatus.CHECKING:
case settings.SafetyCheckUpdatesStatus.UPDATED:
case settings.SafetyCheckUpdatesStatus.UPDATING:
return 'icon-blue';
case settings.SafetyCheckUpdatesStatus.FAILED:
return 'icon-red';
default:
return '';
}
}, },
/** /**
...@@ -436,38 +494,41 @@ Polymer({ ...@@ -436,38 +494,41 @@ Polymer({
/** /**
* @private * @private
* @return {?string} * @return {ChildUiStatus}
*/ */
getPasswordsIcon_: function() { getPasswordsUiStatus_: function() {
switch (this.passwordsStatus_) { switch (this.passwordsStatus_) {
case settings.SafetyCheckPasswordsStatus.CHECKING: case settings.SafetyCheckPasswordsStatus.CHECKING:
return null; return ChildUiStatus.RUNNING;
case settings.SafetyCheckPasswordsStatus.SAFE: case settings.SafetyCheckPasswordsStatus.SAFE:
return 'cr:check'; return ChildUiStatus.SAFE;
case settings.SafetyCheckPasswordsStatus.COMPROMISED: case settings.SafetyCheckPasswordsStatus.COMPROMISED:
return 'cr:warning'; return ChildUiStatus.WARNING;
case settings.SafetyCheckPasswordsStatus.OFFLINE: case settings.SafetyCheckPasswordsStatus.OFFLINE:
case settings.SafetyCheckPasswordsStatus.NO_PASSWORDS: case settings.SafetyCheckPasswordsStatus.NO_PASSWORDS:
case settings.SafetyCheckPasswordsStatus.SIGNED_OUT: case settings.SafetyCheckPasswordsStatus.SIGNED_OUT:
case settings.SafetyCheckPasswordsStatus.QUOTA_LIMIT: case settings.SafetyCheckPasswordsStatus.QUOTA_LIMIT:
case settings.SafetyCheckPasswordsStatus.ERROR: case settings.SafetyCheckPasswordsStatus.ERROR:
return 'cr:info'; return ChildUiStatus.INFO;
default: default:
assertNotReached(); assertNotReached();
} }
}, },
/**
* @private
* @return {?string}
*/
getPasswordsIcon_: function() {
return this.getChildUiIcon_(this.getPasswordsUiStatus_());
},
/** /**
* @private * @private
* @return {?string} * @return {?string}
*/ */
getPasswordsIconSrc_: function() { getPasswordsIconSrc_: function() {
switch (this.passwordsStatus_) { return this.getChildUiIconSrc_(this.getPasswordsUiStatus_());
case settings.SafetyCheckPasswordsStatus.CHECKING:
return 'chrome://resources/images/throbber_small.svg';
default:
return null;
}
}, },
/** /**
...@@ -475,15 +536,7 @@ Polymer({ ...@@ -475,15 +536,7 @@ Polymer({
* @return {string} * @return {string}
*/ */
getPasswordsIconClass_: function() { getPasswordsIconClass_: function() {
switch (this.passwordsStatus_) { return this.getChildUiIconClass_(this.getPasswordsUiStatus_());
case settings.SafetyCheckPasswordsStatus.CHECKING:
case settings.SafetyCheckPasswordsStatus.SAFE:
return 'icon-blue';
case settings.SafetyCheckPasswordsStatus.COMPROMISED:
return 'icon-red';
default:
return '';
}
}, },
/** @private */ /** @private */
...@@ -528,34 +581,37 @@ Polymer({ ...@@ -528,34 +581,37 @@ Polymer({
/** /**
* @private * @private
* @return {?string} * @return {ChildUiStatus}
*/ */
getSafeBrowsingIcon_: function() { getSafeBrowsingUiStatus_: function() {
switch (this.safeBrowsingStatus_) { switch (this.safeBrowsingStatus_) {
case settings.SafetyCheckSafeBrowsingStatus.CHECKING: case settings.SafetyCheckSafeBrowsingStatus.CHECKING:
return null; return ChildUiStatus.RUNNING;
case settings.SafetyCheckSafeBrowsingStatus.ENABLED: case settings.SafetyCheckSafeBrowsingStatus.ENABLED:
return 'cr:check'; return ChildUiStatus.SAFE;
case settings.SafetyCheckSafeBrowsingStatus.DISABLED: case settings.SafetyCheckSafeBrowsingStatus.DISABLED:
case settings.SafetyCheckSafeBrowsingStatus.DISABLED_BY_ADMIN: case settings.SafetyCheckSafeBrowsingStatus.DISABLED_BY_ADMIN:
case settings.SafetyCheckSafeBrowsingStatus.DISABLED_BY_EXTENSION: case settings.SafetyCheckSafeBrowsingStatus.DISABLED_BY_EXTENSION:
return 'cr:info'; return ChildUiStatus.INFO;
default: default:
assertNotReached(); assertNotReached();
} }
}, },
/**
* @private
* @return {?string}
*/
getSafeBrowsingIcon_: function() {
return this.getChildUiIcon_(this.getSafeBrowsingUiStatus_());
},
/** /**
* @private * @private
* @return {?string} * @return {?string}
*/ */
getSafeBrowsingIconSrc_: function() { getSafeBrowsingIconSrc_: function() {
switch (this.safeBrowsingStatus_) { return this.getChildUiIconSrc_(this.getSafeBrowsingUiStatus_());
case settings.SafetyCheckSafeBrowsingStatus.CHECKING:
return 'chrome://resources/images/throbber_small.svg';
default:
return null;
}
}, },
/** /**
...@@ -563,13 +619,7 @@ Polymer({ ...@@ -563,13 +619,7 @@ Polymer({
* @return {string} * @return {string}
*/ */
getSafeBrowsingIconClass_: function() { getSafeBrowsingIconClass_: function() {
switch (this.safeBrowsingStatus_) { return this.getChildUiIconClass_(this.getSafeBrowsingUiStatus_());
case settings.SafetyCheckSafeBrowsingStatus.CHECKING:
case settings.SafetyCheckSafeBrowsingStatus.ENABLED:
return 'icon-blue';
default:
return '';
}
}, },
/** @private */ /** @private */
...@@ -610,40 +660,43 @@ Polymer({ ...@@ -610,40 +660,43 @@ Polymer({
/** /**
* @private * @private
* @return {?string} * @return {ChildUiStatus}
*/ */
getExtensionsIcon_: function() { getExtensionsUiStatus_: function() {
switch (this.extensionsStatus_) { switch (this.extensionsStatus_) {
case settings.SafetyCheckExtensionsStatus.CHECKING: case settings.SafetyCheckExtensionsStatus.CHECKING:
return null; return ChildUiStatus.RUNNING;
case settings.SafetyCheckExtensionsStatus.ERROR: case settings.SafetyCheckExtensionsStatus.ERROR:
case settings.SafetyCheckExtensionsStatus case settings.SafetyCheckExtensionsStatus
.BLOCKLISTED_REENABLED_ALL_BY_ADMIN: .BLOCKLISTED_REENABLED_ALL_BY_ADMIN:
return 'cr:info'; return ChildUiStatus.INFO;
case settings.SafetyCheckExtensionsStatus.NO_BLOCKLISTED_EXTENSIONS: case settings.SafetyCheckExtensionsStatus.NO_BLOCKLISTED_EXTENSIONS:
case settings.SafetyCheckExtensionsStatus.BLOCKLISTED_ALL_DISABLED: case settings.SafetyCheckExtensionsStatus.BLOCKLISTED_ALL_DISABLED:
return 'cr:check'; return ChildUiStatus.SAFE;
case settings.SafetyCheckExtensionsStatus case settings.SafetyCheckExtensionsStatus
.BLOCKLISTED_REENABLED_ALL_BY_USER: .BLOCKLISTED_REENABLED_ALL_BY_USER:
case settings.SafetyCheckExtensionsStatus case settings.SafetyCheckExtensionsStatus
.BLOCKLISTED_REENABLED_SOME_BY_USER: .BLOCKLISTED_REENABLED_SOME_BY_USER:
return 'cr:warning'; return ChildUiStatus.WARNING;
default: default:
assertNotReached(); assertNotReached();
} }
}, },
/**
* @private
* @return {?string}
*/
getExtensionsIcon_: function() {
return this.getChildUiIcon_(this.getExtensionsUiStatus_());
},
/** /**
* @private * @private
* @return {?string} * @return {?string}
*/ */
getExtensionsIconSrc_: function() { getExtensionsIconSrc_: function() {
switch (this.extensionsStatus_) { return this.getChildUiIconSrc_(this.getExtensionsUiStatus_());
case settings.SafetyCheckExtensionsStatus.CHECKING:
return 'chrome://resources/images/throbber_small.svg';
default:
return null;
}
}, },
/** /**
...@@ -651,19 +704,7 @@ Polymer({ ...@@ -651,19 +704,7 @@ Polymer({
* @return {string} * @return {string}
*/ */
getExtensionsIconClass_: function() { getExtensionsIconClass_: function() {
switch (this.extensionsStatus_) { return this.getChildUiIconClass_(this.getExtensionsUiStatus_());
case settings.SafetyCheckExtensionsStatus.CHECKING:
case settings.SafetyCheckExtensionsStatus.NO_BLOCKLISTED_EXTENSIONS:
case settings.SafetyCheckExtensionsStatus.BLOCKLISTED_ALL_DISABLED:
return 'icon-blue';
case settings.SafetyCheckExtensionsStatus
.BLOCKLISTED_REENABLED_ALL_BY_USER:
case settings.SafetyCheckExtensionsStatus
.BLOCKLISTED_REENABLED_SOME_BY_USER:
return 'icon-red';
default:
return '';
}
}, },
/** /**
......
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