Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / automation_internal / automation_util.cc
index 72a94b4..6af78f1 100644 (file)
@@ -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