diff --git a/addons/web/static/src/js/framework/session.js b/addons/web/static/src/js/framework/session.js index 3ae6ddb6649..7eae8b20a65 100644 --- a/addons/web/static/src/js/framework/session.js +++ b/addons/web/static/src/js/framework/session.js @@ -335,6 +335,11 @@ var Session = core.Class.extend(mixins.EventDispatcherMixin, { var self = this; options = _.clone(options || {}); var shadow = options.shadow || false; + options.headers = _.extend({}, options.headers) + if (odoo.debug) { + options.headers["X-Debug-Mode"] = true; + } + delete options.shadow; return self.check_session_id().then(function() { @@ -350,18 +355,14 @@ var Session = core.Class.extend(mixins.EventDispatcherMixin, { if (self.origin_server) { fct = ajax.jsonRpc; if (self.override_session) { - options.headers = _.extend({}, options.headers, { - "X-Openerp-Session-Id": self.override_session ? self.session_id || '' : '' - }); + options.headers["X-Openerp-Session-Id"] = self.session_id || ''; } } else if (self.use_cors) { fct = ajax.jsonRpc; url = self.url(url, null); options.session_id = self.session_id || ''; if (self.override_session) { - options.headers = _.extend({}, options.headers, { - "X-Openerp-Session-Id": self.override_session ? self.session_id || '' : '' - }); + options.headers["X-Openerp-Session-Id"] = self.session_id || ''; } } else { fct = ajax.jsonpRpc; diff --git a/openerp/http.py b/openerp/http.py index 6580d94d32f..af151a0e325 100644 --- a/openerp/http.py +++ b/openerp/http.py @@ -321,6 +321,11 @@ class WebRequest(object): """ Indicates whether the current request is in "debug" mode """ debug = 'debug' in self.httprequest.args + + # check if request from rpc in debug mode + if not debug: + debug = self.httprequest.environ.get('HTTP_X_DEBUG_MODE') + if not debug and self.httprequest.referrer: debug = bool(urlparse.parse_qs(urlparse.urlparse(self.httprequest.referrer).query, keep_blank_values=True).get('debug')) return debug