From 9f1438d5f1b7097c7643290c4195216ff51c9a81 Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Fri, 17 Nov 2017 12:02:44 +0100 Subject: [PATCH] [IMP] website: Script injected in DOM: window.onerror empty params Cherry-pick (and improvement) of 4bd8e3e (11.0) which should have landed in 10.0 Closes #21032 --- .../web/static/src/js/abstract_web_client.js | 37 ++++++++++++++++--- .../static/src/js/website.backendDashboard.js | 5 +++ .../static/src/xml/website.backend.xml | 1 + 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/addons/web/static/src/js/abstract_web_client.js b/addons/web/static/src/js/abstract_web_client.js index 115a58a654f..8c82abf846c 100644 --- a/addons/web/static/src/js/abstract_web_client.js +++ b/addons/web/static/src/js/abstract_web_client.js @@ -120,12 +120,37 @@ var WebClient = Widget.extend({ // crash manager integration session.on('error', crash_manager, crash_manager.rpc_error); window.onerror = function (message, file, line, col, error) { - var traceback = error ? error.stack : ''; - crash_manager.show_error({ - type: _t("Client Error"), - message: message, - data: {debug: file + ':' + line + "\n" + _t('Traceback:') + "\n" + traceback} - }); + // Scripts injected in DOM (eg: google API's js files) won't return a clean error on window.onerror. + // The browser will just give you a 'Script error.' as message and nothing else for security issue. + // To enable onerror to work properly with CORS file, you should: + // 1. add crossorigin="anonymous" to your