summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/backend/dashboard.js
diff options
context:
space:
mode:
authorrde <rde@odoo.com>2017-09-29 13:48:33 +0200
committerJeremy Kersten <jke@odoo.com>2017-09-30 12:21:27 +0200
commit4bd8e3e2ed48eb05b9e155826fd47753a85b5731 (patch)
treea0c2b6e7ab80bcf313208031bed065a31139f9a3 /addons/website/static/src/js/backend/dashboard.js
parentc837eaca9f41f2345e72500234d1562e009fd110 (diff)
[IMP] website: Script injected in DOM: window.onerror empty params
Before this commit, error thrown by scripts injected in DOM won't return a clean error on window.onerror. It would open the crash_manager's show_error's dialog that wouldn't display any informations except "Script Error." and "Traceback:". This is because of browser's security reason: it will just give you a 'Script error.' as message and nothing else for security issue. Now, this kind of error will show a clearer message informing that it is probably originating from a Javascript file served from a different origin. There is now also the possibility for developers to handle/override the behavior when this kind of error is catch to prevent the dialog to open for example. Might be of use: https://blog.sentry.io/2016/05/17/what-is-script-error.html https://stackoverflow.com/a/7778424 https://danlimerick.wordpress.com/2014/01/18/how-to-catch-javascript-errors-with-window-onerror-even-on-chrome-and-firefox/ (Search for Script Error)
Diffstat (limited to 'addons/website/static/src/js/backend/dashboard.js')
-rw-r--r--addons/website/static/src/js/backend/dashboard.js5
1 files changed, 5 insertions, 0 deletions
diff --git a/addons/website/static/src/js/backend/dashboard.js b/addons/website/static/src/js/backend/dashboard.js
index c48da63e59d..c140e61c3e5 100644
--- a/addons/website/static/src/js/backend/dashboard.js
+++ b/addons/website/static/src/js/backend/dashboard.js
@@ -198,10 +198,15 @@ var Dashboard = Widget.extend(ControlPanelMixin, {
$analytics_components.empty();
// 1. Authorize component
var $analytics_auth = $('<div>').addClass('col-md-12');
+ window.onOriginError = function () {
+ $analytics_components.find('.js_unauthorized_message').remove();
+ self.display_unauthorized_message($analytics_components, 'not_initialized');
+ };
gapi.analytics.auth.authorize({
container: $analytics_auth[0],
clientid: client_id
});
+
$analytics_auth.appendTo($analytics_components);
self.handle_analytics_auth($analytics_components);