From 2f16d6bfe397b7d0c8ff31bfe7eb0c326f2740e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Thu, 12 Apr 2018 11:16:30 +0200 Subject: [FIX] web: prevent destroyed widget from calling start Whenever a widget is destroyed, it should be as inactive as possible. Before this commit, it could happen that a widget was destroyed after the willstart method, but before the start method. In that case, bad things could happen. For example, the discuss client action tries to look up some information into the session, with the getSession method. This causes a crash whenever the widget is destroyed. --- addons/web/static/src/js/core/widget.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'addons/web/static/src/js/core/widget.js') diff --git a/addons/web/static/src/js/core/widget.js b/addons/web/static/src/js/core/widget.js index 5e23c3f2c47..b25cd99587b 100644 --- a/addons/web/static/src/js/core/widget.js +++ b/addons/web/static/src/js/core/widget.js @@ -391,6 +391,9 @@ var Widget = core.Class.extend(mixins.PropertiesMixin, ServicesMixin, { _widgetRenderAndInsert: function (insertion, target) { var self = this; return this.willStart().then(function () { + if (self.__parentedDestroyed) { + return; + } self.renderElement(); insertion(target); return self.start(); -- cgit v1.2.3