Index: chrome/browser/accessibility/accessibility_extension_api.cc |
diff --git a/chrome/browser/accessibility/accessibility_extension_api.cc b/chrome/browser/accessibility/accessibility_extension_api.cc |
index 78de51d4ea9ff087c23311e8a45dcb28a8afcb60..83fe84d0cc5e0d029d4fef8ee09378c4bd5e23c8 100644 |
--- a/chrome/browser/accessibility/accessibility_extension_api.cc |
+++ b/chrome/browser/accessibility/accessibility_extension_api.cc |
@@ -25,14 +25,14 @@ namespace keys = extension_accessibility_api_constants; |
// Returns the AccessibilityControlInfo serialized into a JSON string, |
// consisting of an array of a single object of type AccessibilityObject, |
// as defined in the accessibility extension api's json schema. |
-std::string ControlInfoToJsonString(const AccessibilityEventInfo* info) { |
- ListValue args; |
+scoped_ptr<ListValue> ControlInfoToEventArguments( |
+ const AccessibilityEventInfo* info) { |
DictionaryValue* dict = new DictionaryValue(); |
info->SerializeToDict(dict); |
- args.Append(dict); |
- std::string json_args; |
- base::JSONWriter::Write(&args, &json_args); |
- return json_args; |
+ |
+ scoped_ptr<ListValue> args(new ListValue()); |
+ args->Append(dict); |
+ return args.Pass(); |
} |
ExtensionAccessibilityEventRouter* |
@@ -116,55 +116,55 @@ bool ExtensionAccessibilityEventRouter::IsAccessibilityEnabled() const { |
void ExtensionAccessibilityEventRouter::OnWindowOpened( |
const AccessibilityWindowInfo* info) { |
- std::string json_args = ControlInfoToJsonString(info); |
- DispatchEvent(info->profile(), keys::kOnWindowOpened, json_args); |
+ scoped_ptr<ListValue> args(ControlInfoToEventArguments(info)); |
+ DispatchEvent(info->profile(), keys::kOnWindowOpened, args.Pass()); |
} |
void ExtensionAccessibilityEventRouter::OnWindowClosed( |
const AccessibilityWindowInfo* info) { |
- std::string json_args = ControlInfoToJsonString(info); |
- DispatchEvent(info->profile(), keys::kOnWindowClosed, json_args); |
+ scoped_ptr<ListValue> args(ControlInfoToEventArguments(info)); |
+ DispatchEvent(info->profile(), keys::kOnWindowClosed, args.Pass()); |
} |
void ExtensionAccessibilityEventRouter::OnControlFocused( |
const AccessibilityControlInfo* info) { |
last_focused_control_dict_.Clear(); |
info->SerializeToDict(&last_focused_control_dict_); |
- std::string json_args = ControlInfoToJsonString(info); |
- DispatchEvent(info->profile(), keys::kOnControlFocused, json_args); |
+ scoped_ptr<ListValue> args(ControlInfoToEventArguments(info)); |
+ DispatchEvent(info->profile(), keys::kOnControlFocused, args.Pass()); |
} |
void ExtensionAccessibilityEventRouter::OnControlAction( |
const AccessibilityControlInfo* info) { |
- std::string json_args = ControlInfoToJsonString(info); |
- DispatchEvent(info->profile(), keys::kOnControlAction, json_args); |
+ scoped_ptr<ListValue> args(ControlInfoToEventArguments(info)); |
+ DispatchEvent(info->profile(), keys::kOnControlAction, args.Pass()); |
} |
void ExtensionAccessibilityEventRouter::OnTextChanged( |
const AccessibilityControlInfo* info) { |
- std::string json_args = ControlInfoToJsonString(info); |
- DispatchEvent(info->profile(), keys::kOnTextChanged, json_args); |
+ scoped_ptr<ListValue> args(ControlInfoToEventArguments(info)); |
+ DispatchEvent(info->profile(), keys::kOnTextChanged, args.Pass()); |
} |
void ExtensionAccessibilityEventRouter::OnMenuOpened( |
const AccessibilityMenuInfo* info) { |
- std::string json_args = ControlInfoToJsonString(info); |
- DispatchEvent(info->profile(), keys::kOnMenuOpened, json_args); |
+ scoped_ptr<ListValue> args(ControlInfoToEventArguments(info)); |
+ DispatchEvent(info->profile(), keys::kOnMenuOpened, args.Pass()); |
} |
void ExtensionAccessibilityEventRouter::OnMenuClosed( |
const AccessibilityMenuInfo* info) { |
- std::string json_args = ControlInfoToJsonString(info); |
- DispatchEvent(info->profile(), keys::kOnMenuClosed, json_args); |
+ scoped_ptr<ListValue> args(ControlInfoToEventArguments(info)); |
+ DispatchEvent(info->profile(), keys::kOnMenuClosed, args.Pass()); |
} |
void ExtensionAccessibilityEventRouter::DispatchEvent( |
Profile* profile, |
const char* event_name, |
- const std::string& json_args) { |
+ scoped_ptr<base::ListValue> event_args) { |
if (enabled_ && profile && profile->GetExtensionEventRouter()) { |
- profile->GetExtensionEventRouter()->DispatchEventToRenderers( |
- event_name, json_args, NULL, GURL(), extensions::EventFilteringInfo()); |
+ profile->GetExtensionEventRouter()->DispatchEventToRenderers(event_name, |
+ event_args.Pass(), NULL, GURL(), extensions::EventFilteringInfo()); |
} |
} |