From 59c8c523ded191bb43a4060ac06a6a5fbd334fc4 Mon Sep 17 00:00:00 2001 From: "Lucas Perais (lpe)" Date: Mon, 24 Aug 2020 06:18:48 +0000 Subject: [PATCH] [FIX] web: crash_manager uses BrowserDetection Before this commit, the crash manager used a copy of the browser detection isBrowserChrome method because it was not possible to to register the proper dependency in stable version This commit makes the crash manager use the module BrowserDetection for that purpose, with the proper registered dependency before hand closes odoo/odoo#56364 X-original-commit: 59e0dbab98466a23792af4a10003142614bda676 Signed-off-by: Lucas Perais (lpe) --- addons/web/static/src/js/services/crash_manager.js | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/addons/web/static/src/js/services/crash_manager.js b/addons/web/static/src/js/services/crash_manager.js index 65e15df59ea..00cf4ae5620 100644 --- a/addons/web/static/src/js/services/crash_manager.js +++ b/addons/web/static/src/js/services/crash_manager.js @@ -11,6 +11,7 @@ odoo.define('web.CrashManager', function (require) { const AbstractService = require('web.AbstractService'); var ajax = require('web.ajax'); +const BrowserDetection = require('web.BrowserDetection'); var core = require('web.core'); var Dialog = require('web.Dialog'); var ErrorDialogRegistry = require('web.ErrorDialogRegistry'); @@ -27,14 +28,6 @@ window.addEventListener('unhandledrejection', ev => let active = true; -// Note: we already have this function in browser_detection.js but browser_detection.js -// is in assets_backend while crash_managere.js is in common so it will have dependency -// of file browser_detection.js which will not be available in frontend, so copy function here -const isBrowserChrome = function () { - return $.browser.chrome && // depends on jquery 1.x, removed in jquery 2 and above - navigator.userAgent.toLocaleLowerCase().indexOf('edge') === -1; // as far as jquery is concerned, Edge is chrome -}; - /** * An extension of Dialog Widget to render the warnings and errors on the website. * Extend it with your template of choice like ErrorDialog/WarningDialog @@ -103,6 +96,7 @@ var CrashManager = AbstractService.extend({ 'odoo.exceptions.ValidationError': _lt("Validation Error"), }; + this.browserDetection = new BrowserDetection(); this._super.apply(this, arguments); // crash manager integration @@ -155,7 +149,7 @@ var CrashManager = AbstractService.extend({ // In particular, Chrome formats the contents of Error.stack // https://v8.dev/docs/stack-trace-api#compatibility let traceback; - if (isBrowserChrome()) { + if (self.browserDetection.isBrowserChrome()) { traceback = ev.reason.stack; } else { traceback = `${_t("Error:")} ${ev.reason.message}\n${ev.reason.stack}`;