Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / extension_error_reporter.cc
index 837402b..8986423 100644 (file)
 #include "base/message_loop/message_loop.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/chrome_notification_types.h"
+#include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/simple_message_box.h"
 #include "content/public/browser/notification_service.h"
+#include "extensions/browser/notification_types.h"
+#include "grit/generated_resources.h"
+#include "ui/base/l10n/l10n_util.h"
 
 ExtensionErrorReporter* ExtensionErrorReporter::instance_ = NULL;
 
@@ -42,19 +45,23 @@ ExtensionErrorReporter::~ExtensionErrorReporter() {}
 void ExtensionErrorReporter::ReportLoadError(
     const base::FilePath& extension_path,
     const std::string& error,
-    Profile* profile,
+    content::BrowserContext* browser_context,
     bool be_noisy) {
   content::NotificationService::current()->Notify(
-      chrome::NOTIFICATION_EXTENSION_LOAD_ERROR,
-      content::Source<Profile>(profile),
+      extensions::NOTIFICATION_EXTENSION_LOAD_ERROR,
+      content::Source<Profile>(Profile::FromBrowserContext(browser_context)),
       content::Details<const std::string>(&error));
 
   std::string path_str = base::UTF16ToUTF8(extension_path.LossyDisplayName());
-  base::string16 message = base::UTF8ToUTF16(
-      base::StringPrintf("Could not load extension from '%s'. %s",
-                         path_str.c_str(),
-                         error.c_str()));
+  base::string16 message = base::UTF8ToUTF16(base::StringPrintf(
+      "%s %s. %s",
+      l10n_util::GetStringUTF8(IDS_EXTENSIONS_LOAD_ERROR_MESSAGE).c_str(),
+      path_str.c_str(),
+      error.c_str()));
   ReportError(message, be_noisy);
+  FOR_EACH_OBSERVER(Observer,
+                    observers_,
+                    OnLoadFailure(browser_context, extension_path, error));
 }
 
 void ExtensionErrorReporter::ReportError(const base::string16& message,
@@ -72,10 +79,11 @@ void ExtensionErrorReporter::ReportError(const base::string16& message,
   LOG(WARNING) << "Extension error: " << message;
 
   if (enable_noisy_errors_ && be_noisy) {
-    chrome::ShowMessageBox(NULL,
-                           base::ASCIIToUTF16("Extension error"),
-                           message,
-                           chrome::MESSAGE_BOX_TYPE_WARNING);
+    chrome::ShowMessageBox(
+        NULL,
+        l10n_util::GetStringUTF16(IDS_EXTENSIONS_LOAD_ERROR_HEADING),
+        message,
+        chrome::MESSAGE_BOX_TYPE_WARNING);
   }
 }
 
@@ -86,3 +94,11 @@ const std::vector<base::string16>* ExtensionErrorReporter::GetErrors() {
 void ExtensionErrorReporter::ClearErrors() {
   errors_.clear();
 }
+
+void ExtensionErrorReporter::AddObserver(Observer* observer) {
+  observers_.AddObserver(observer);
+}
+
+void ExtensionErrorReporter::RemoveObserver(Observer* observer) {
+  observers_.RemoveObserver(observer);
+}