Index: chrome/browser/extensions/extension_error_reporter.cc |
diff --git a/chrome/browser/extensions/extension_error_reporter.cc b/chrome/browser/extensions/extension_error_reporter.cc |
index 837402bea19937013fae60b73f8da0d825aefec4..66a1030a2fe4fd1f545f804772d94e8e3f471b07 100644 |
--- a/chrome/browser/extensions/extension_error_reporter.cc |
+++ b/chrome/browser/extensions/extension_error_reporter.cc |
@@ -3,6 +3,7 @@ |
// found in the LICENSE file. |
#include "chrome/browser/extensions/extension_error_reporter.h" |
+#include "chrome/browser/extensions/extension_error_reporter_observer.h" |
#include "build/build_config.h" |
@@ -54,11 +55,14 @@ void ExtensionErrorReporter::ReportLoadError( |
base::StringPrintf("Could not load extension from '%s'. %s", |
path_str.c_str(), |
error.c_str())); |
- ReportError(message, be_noisy); |
+ // ReportError(message, be_noisy); |
+ ReportError(message, false); |
+ TriggerOnLoadFailure(extension_path, error); |
} |
void ExtensionErrorReporter::ReportError(const base::string16& message, |
bool be_noisy) { |
+ DLOG(ERROR) << "----ReportError"; |
// NOTE: There won't be a ui_loop_ in the unit test environment. |
if (ui_loop_) { |
CHECK(base::MessageLoop::current() == ui_loop_) |
@@ -86,3 +90,22 @@ const std::vector<base::string16>* ExtensionErrorReporter::GetErrors() { |
void ExtensionErrorReporter::ClearErrors() { |
errors_.clear(); |
} |
+ |
+void ExtensionErrorReporter::AddObserver( |
+ ExtensionErrorReporterObserver* observer) { |
+ observers_.AddObserver(observer); |
+} |
+ |
+void ExtensionErrorReporter::RemoveObserver( |
+ ExtensionErrorReporterObserver* observer) { |
+ observers_.RemoveObserver(observer); |
+} |
+ |
+void ExtensionErrorReporter::TriggerOnLoadFailure( |
+ const base::FilePath& extension_path, |
+ const std::string& error) { |
+ DLOG(ERROR) << "---TriggerOnLoadFailure"; |
+ FOR_EACH_OBSERVER(ExtensionErrorReporterObserver, |
+ observers_, |
+ OnLoadFailure(extension_path, error)); |
+} |