summaryrefslogtreecommitdiff
path: root/chromium/extensions/browser/install
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/extensions/browser/install')
-rw-r--r--chromium/extensions/browser/install/crx_install_error.cc10
-rw-r--r--chromium/extensions/browser/install/crx_install_error.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/chromium/extensions/browser/install/crx_install_error.cc b/chromium/extensions/browser/install/crx_install_error.cc
index 12d2f22f60e..d61f059ccf6 100644
--- a/chromium/extensions/browser/install/crx_install_error.cc
+++ b/chromium/extensions/browser/install/crx_install_error.cc
@@ -84,4 +84,14 @@ bool CrxInstallError::IsCrxVerificationFailedError() const {
std::end(kVerificationFailureReasons);
}
+// Returns true if the error occurred during crx installation due to mismatch in
+// expectations from the manifest.
+bool CrxInstallError::IsCrxExpectationsFailedError() const {
+ if (type() != CrxInstallErrorType::OTHER)
+ return false;
+ const CrxInstallErrorDetail failure_reason = detail();
+ return failure_reason == CrxInstallErrorDetail::UNEXPECTED_ID ||
+ failure_reason == CrxInstallErrorDetail::MISMATCHED_VERSION;
+}
+
} // namespace extensions
diff --git a/chromium/extensions/browser/install/crx_install_error.h b/chromium/extensions/browser/install/crx_install_error.h
index 8cce45e9c04..5336cf2c39f 100644
--- a/chromium/extensions/browser/install/crx_install_error.h
+++ b/chromium/extensions/browser/install/crx_install_error.h
@@ -82,6 +82,7 @@ class CrxInstallError {
CrxInstallErrorDetail detail() const;
SandboxedUnpackerFailureReason sandbox_failure_detail() const;
bool IsCrxVerificationFailedError() const;
+ bool IsCrxExpectationsFailedError() const;
private:
CrxInstallErrorType type_;