Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(755)

Unified Diff: chrome/browser/accessibility/accessibility_extension_api.cc

Issue 10694085: Refactor extension event distribution to use Values instead of JSON strings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing memory leak in a test. Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
}
}
« no previous file with comments | « chrome/browser/accessibility/accessibility_extension_api.h ('k') | chrome/browser/bookmarks/bookmark_extension_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698