From 00b6645c94b6bdc0ca91d5d78fd40ae7ed347785 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 3 Sep 2022 12:58:10 +0100 Subject: [PATCH] Disable overriding core widgets in safe mode --- core/modules/widgets/widget.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js index 1086bd5eb..4525c8e7c 100755 --- a/core/modules/widgets/widget.js +++ b/core/modules/widgets/widget.js @@ -503,8 +503,8 @@ Widget.prototype.makeChildWidget = function(parseTreeNode,options) { var variableDefinitionName = "$" + parseTreeNode.type, variableInfo = this.getVariableInfo(variableDefinitionName,{allowSelfAssigned: true}), isOverrideable = function() { - // Widget is overrideable if it has a double dollar user defined name, or if it is an existing JS widget - return parseTreeNode.type.charAt(0) === "$" || !!self.widgetClasses[parseTreeNode.type]; + // Widget is overrideable if it has a double dollar user defined name, or if it is an existing JS widget and we're not in safe mode + return parseTreeNode.type.charAt(0) === "$" || (!!self.widgetClasses[parseTreeNode.type] && !$tw.safeMode); }; if(!parseTreeNode.isNotRemappable && isOverrideable() && variableInfo && variableInfo.srcVariable && variableInfo.srcVariable.value && variableInfo.srcVariable.isWidgetDefinition) { var newParseTreeNode = {