| Index: extensions/browser/extension_error.cc
|
| diff --git a/extensions/browser/extension_error.cc b/extensions/browser/extension_error.cc
|
| index 272028e933e0e6ed1bb664e26349f9b4221c2a01..f981414f78b8044e0b0c2e65b8044ce72402e569 100644
|
| --- a/extensions/browser/extension_error.cc
|
| +++ b/extensions/browser/extension_error.cc
|
| @@ -120,6 +120,17 @@ bool ManifestError::IsEqualImpl(const ExtensionError* rhs) const {
|
| return true;
|
| }
|
|
|
| +////////////////////////////////////////////////////////////////////////////////
|
| +// RuntimeError
|
| +
|
| +// Static JSON keys.
|
| +const char RuntimeError::kColumnNumberKey[] = "columnNumber";
|
| +const char RuntimeError::kContextUrlKey[] = "contextUrl";
|
| +const char RuntimeError::kFunctionNameKey[] = "functionName";
|
| +const char RuntimeError::kLineNumberKey[] = "lineNumber";
|
| +const char RuntimeError::kStackTraceKey[] = "stackTrace";
|
| +const char RuntimeError::kUrlKey[] = "url";
|
| +
|
| RuntimeError::RuntimeError(bool from_incognito,
|
| const string16& source,
|
| const string16& message,
|
| @@ -140,6 +151,26 @@ RuntimeError::RuntimeError(bool from_incognito,
|
| RuntimeError::~RuntimeError() {
|
| }
|
|
|
| +scoped_ptr<DictionaryValue> RuntimeError::ToValue() const {
|
| + scoped_ptr<DictionaryValue> value = ExtensionError::ToValue();
|
| + value->SetString(kContextUrlKey, context_url_.spec());
|
| +
|
| + ListValue* trace_value = new ListValue;
|
| + for (StackTrace::const_iterator iter = stack_trace_.begin();
|
| + iter != stack_trace_.end(); ++iter) {
|
| + DictionaryValue* frame_value = new DictionaryValue;
|
| + frame_value->SetInteger(kLineNumberKey, iter->line_number);
|
| + frame_value->SetInteger(kColumnNumberKey, iter->column_number);
|
| + frame_value->SetString(kUrlKey, iter->source);
|
| + frame_value->SetString(kFunctionNameKey, iter->function);
|
| + trace_value->Append(frame_value);
|
| + }
|
| +
|
| + value->Set(kStackTraceKey, trace_value);
|
| +
|
| + return value.Pass();
|
| +}
|
| +
|
| std::string RuntimeError::PrintForTest() const {
|
| std::string result = ExtensionError::PrintForTest() +
|
| "\n Type: RuntimeError"
|
|
|