Index: chrome/browser/extensions/settings/settings_frontend.cc |
diff --git a/chrome/browser/extensions/settings/settings_frontend.cc b/chrome/browser/extensions/settings/settings_frontend.cc |
index 7eef6bc07fe20229ef9ef8525ba341254c5b05e4..25d4ce7570d9db33349065604ee4c51e8dac9c22 100644 |
--- a/chrome/browser/extensions/settings/settings_frontend.cc |
+++ b/chrome/browser/extensions/settings/settings_frontend.cc |
@@ -6,6 +6,7 @@ |
#include "base/bind.h" |
#include "base/file_path.h" |
+#include "base/json/json_reader.h" |
#include "base/string_number_conversions.h" |
#include "chrome/browser/extensions/extension_event_names.h" |
#include "chrome/browser/extensions/extension_event_router.h" |
@@ -37,13 +38,18 @@ class DefaultObserver : public SettingsObserver { |
const std::string& extension_id, |
settings_namespace::Namespace settings_namespace, |
const std::string& change_json) OVERRIDE { |
+ ListValue* args = new ListValue(); |
+ |
+ // TODO(gdk): This is a temporary hack while the refactoring for |
+ // string-based event payloads is removed. http://crbug.com/136045 |
+ args->Append(base::JSONReader::Read(change_json)); |
+ args->Append(Value::CreateStringValue(settings_namespace::ToString( |
+ settings_namespace))); |
+ |
profile_->GetExtensionEventRouter()->DispatchEventToExtension( |
extension_id, |
extension_event_names::kOnSettingsChanged, |
- // This is the list of function arguments to pass to the onChanged |
- // handler of extensions, an array of [changes, settings_namespace]. |
- std::string("[") + change_json + ",\"" + |
- settings_namespace::ToString(settings_namespace) + "\"]", |
+ args, |
NULL, |
GURL()); |
} |