| 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());
|
| }
|
| }
|
|
|
|
|