Automatically decode JavaScript stack traces as we send them

(imported from commit 348c464102a43a44c91c79d498cd33e6405ed670)
This commit is contained in:
Keegan McAllister 2013-03-28 13:53:44 -04:00
parent 1ecc063d0f
commit 7236c63008
1 changed files with 8 additions and 0 deletions

View File

@ -42,6 +42,7 @@ from zephyr.lib.avatar import gravatar_hash
from zephyr.lib.response import json_success, json_error, json_response, json_method_not_allowed
from zephyr.lib.timestamp import timestamp_to_datetime, datetime_to_timestamp
from zephyr.lib.cache import cache_with_key
from zephyr.lib.unminify import SourceMap
from zephyr import tornado_callbacks
@ -55,6 +56,7 @@ import time
import requests
import os
import base64
from os import path
from collections import defaultdict
from zephyr.lib import bugdown
@ -1374,6 +1376,10 @@ def json_update_active_status(request, user_profile,
def json_get_active_statuses(request, user_profile):
return json_success(get_status_list(user_profile))
# Read the source map information for decoding JavaScript backtraces
js_source_map = SourceMap(path.join(
settings.SITE_ROOT, '../prod-static/source-map/app.js.map'))
@authenticated_json_post_view
@has_request_variables
def json_report_error(request, user_profile, message=POST, stacktrace=POST,
@ -1384,6 +1390,8 @@ def json_report_error(request, user_profile, message=POST, stacktrace=POST,
else:
subject = "Browser " + subject
stacktrace = js_source_map.annotate_stacktrace(stacktrace)
mail_admins(subject,
"Message:\n%s\n\nStacktrace:\n%s\n\nUser agent:\n%s\n\n"
"User saw error in UI: %s"