OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/extension_error_reporter.h" | 5 #include "chrome/browser/extensions/extension_error_reporter.h" |
6 | 6 |
7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 return instance_; | 28 return instance_; |
29 } | 29 } |
30 | 30 |
31 ExtensionErrorReporter::ExtensionErrorReporter(bool enable_noisy_errors) | 31 ExtensionErrorReporter::ExtensionErrorReporter(bool enable_noisy_errors) |
32 : ui_loop_(MessageLoop::current()), | 32 : ui_loop_(MessageLoop::current()), |
33 enable_noisy_errors_(enable_noisy_errors) { | 33 enable_noisy_errors_(enable_noisy_errors) { |
34 } | 34 } |
35 | 35 |
36 ExtensionErrorReporter::~ExtensionErrorReporter() {} | 36 ExtensionErrorReporter::~ExtensionErrorReporter() {} |
37 | 37 |
38 void ExtensionErrorReporter::ReportError(const std::string& message, | 38 void ExtensionErrorReporter::ReportError(const string16& message, |
39 bool be_noisy) { | 39 bool be_noisy) { |
40 // NOTE: There won't be a ui_loop_ in the unit test environment. | 40 // NOTE: There won't be a ui_loop_ in the unit test environment. |
41 if (ui_loop_ && MessageLoop::current() != ui_loop_) { | 41 if (ui_loop_ && MessageLoop::current() != ui_loop_) { |
42 // base::Unretained is okay since the ExtensionErrorReporter is a singleton | 42 // base::Unretained is okay since the ExtensionErrorReporter is a singleton |
43 // that lives until the end of the process. | 43 // that lives until the end of the process. |
44 ui_loop_->PostTask(FROM_HERE, | 44 ui_loop_->PostTask(FROM_HERE, |
45 base::Bind(&ExtensionErrorReporter::ReportError, | 45 base::Bind(&ExtensionErrorReporter::ReportError, |
46 base::Unretained(this), | 46 base::Unretained(this), |
47 message, | 47 message, |
48 be_noisy)); | 48 be_noisy)); |
49 return; | 49 return; |
50 } | 50 } |
51 | 51 |
52 errors_.push_back(message); | 52 errors_.push_back(message); |
53 | 53 |
54 // TODO(aa): Print the error message out somewhere better. I think we are | 54 // TODO(aa): Print the error message out somewhere better. I think we are |
55 // going to need some sort of 'extension inspector'. | 55 // going to need some sort of 'extension inspector'. |
56 LOG(ERROR) << "Extension error: " << message; | 56 LOG(ERROR) << "Extension error: " << message; |
57 | 57 |
58 if (enable_noisy_errors_ && be_noisy) { | 58 if (enable_noisy_errors_ && be_noisy) { |
59 browser::ShowErrorBox(NULL, | 59 browser::ShowErrorBox(NULL, |
60 UTF8ToUTF16("Extension error"), | 60 UTF8ToUTF16("Extension error"), |
61 UTF8ToUTF16(message)); | 61 message); |
62 } | 62 } |
63 } | 63 } |
64 | 64 |
65 const std::vector<std::string>* ExtensionErrorReporter::GetErrors() { | 65 const std::vector<string16>* ExtensionErrorReporter::GetErrors() { |
66 return &errors_; | 66 return &errors_; |
67 } | 67 } |
68 | 68 |
69 void ExtensionErrorReporter::ClearErrors() { | 69 void ExtensionErrorReporter::ClearErrors() { |
70 errors_.clear(); | 70 errors_.clear(); |
71 } | 71 } |
OLD | NEW |