Index: chrome/browser/extensions/api/automation_internal/automation_util.cc |
diff --git a/chrome/browser/extensions/api/automation_internal/automation_util.cc b/chrome/browser/extensions/api/automation_internal/automation_util.cc |
index 72a94b467e827a52badaef3ccdd2b336085806a7..6af78f1ac48e2d78c44533e53c5ebbdcd6137f98 100644 |
--- a/chrome/browser/extensions/api/automation_internal/automation_util.cc |
+++ b/chrome/browser/extensions/api/automation_internal/automation_util.cc |
@@ -8,6 +8,7 @@ |
#include <utility> |
#include "base/values.h" |
+#include "chrome/browser/accessibility/ax_tree_id_registry.h" |
#include "chrome/common/extensions/api/automation_internal.h" |
#include "extensions/browser/event_router.h" |
#include "ui/accessibility/ax_enums.h" |
@@ -136,8 +137,9 @@ void DispatchAccessibilityEventsToAutomation( |
const content::AXEventNotificationDetails& event = *iter; |
AXEventParams ax_event_params; |
- ax_event_params.process_id = event.process_id; |
- ax_event_params.routing_id = event.routing_id; |
+ ax_event_params.tree_id = |
+ AXTreeIDRegistry::GetInstance()->GetOrCreateAXTreeID(event.process_id, |
+ event.routing_id); |
ax_event_params.event_type = ToString(iter->event_type); |
ax_event_params.target_id = event.id; |
@@ -168,11 +170,13 @@ void DispatchTreeDestroyedEventToAutomation( |
int process_id, |
int routing_id, |
content::BrowserContext* browser_context) { |
+ int tree_id = AXTreeIDRegistry::GetInstance()->GetOrCreateAXTreeID( |
+ process_id, routing_id); |
DispatchEventInternal( |
browser_context, |
api::automation_internal::OnAccessibilityTreeDestroyed::kEventName, |
- api::automation_internal::OnAccessibilityTreeDestroyed::Create( |
- process_id, routing_id)); |
+ api::automation_internal::OnAccessibilityTreeDestroyed::Create(tree_id)); |
+ AXTreeIDRegistry::GetInstance()->RemoveAXTreeID(tree_id); |
} |
} // namespace automation_util |