AddStep(&TaskWidgetConfig::ProcessLocalizedIcons);
AddStep(&TaskWidgetConfig::ProcessWidgetInstalledPath);
AddStep(&TaskWidgetConfig::ProcessAppControlInfo);
+ AddStep(&TaskWidgetConfig::ProcessSecurityModel);
AddStep(&TaskWidgetConfig::StepVerifyFeatures);
AddStep(&TaskWidgetConfig::StepCheckMinVersionInfo);
}
}
}
+void TaskWidgetConfig::ProcessSecurityModel()
+{
+ bool isSecurityModelV1 = false;
+ bool isSecurityModelV2 = false;
+ WrtDB::ConfigParserData &data = m_installContext.widgetConfig.configInfo;
+
+ // WARP is V1
+ if (!data.accessInfoSet.empty()) {
+ isSecurityModelV1 = true;
+ }
+
+ // CSP is V2
+ if (!data.cspPolicy.IsNull() || !data.cspPolicyReportOnly.IsNull()) {
+ isSecurityModelV2 = true;
+ }
+
+ // allow-navigation is V2
+ if (!data.allowNavigationInfoList.empty()) {
+ isSecurityModelV2 = true;
+ }
+
+ if (isSecurityModelV1 && isSecurityModelV2) {
+ LogError("Security model is conflict");
+ ThrowMsg(Exceptions::NotAllowed, "Security model is conflict");
+ } else if (isSecurityModelV1) {
+ data.securityModelVersion =
+ WrtDB::ConfigParserData::SecurityModelVersion::SECURITY_MODEL_V1;
+ } else if (isSecurityModelV2) {
+ data.securityModelVersion =
+ WrtDB::ConfigParserData::SecurityModelVersion::SECURITY_MODEL_V2;
+ } else {
+ data.securityModelVersion =
+ WrtDB::ConfigParserData::SecurityModelVersion::SECURITY_MODEL_V1;
+ }
+
+ m_installContext.job->UpdateProgress(
+ InstallerContext::INSTALL_WIDGET_CONFIG2,
+ "Finished process security model");
+}
+
void TaskWidgetConfig::StepCheckMinVersionInfo()
{
if (!isMinVersionCompatible(