| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/files/file_path.h" | 5 #include "base/files/file_path.h" |
| 6 #include "base/path_service.h" | 6 #include "base/path_service.h" |
| 7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
| 8 #include "chrome/browser/extensions/api/automation_internal/automation_util.h" | 8 #include "chrome/browser/extensions/api/automation_internal/automation_util.h" |
| 9 #include "chrome/browser/extensions/chrome_extension_function.h" | 9 #include "chrome/browser/extensions/chrome_extension_function.h" |
| 10 #include "chrome/browser/extensions/extension_apitest.h" | 10 #include "chrome/browser/extensions/extension_apitest.h" |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 tree0_version(0), | 230 tree0_version(0), |
| 231 tree1_version(0) { | 231 tree1_version(0) { |
| 232 } | 232 } |
| 233 | 233 |
| 234 // Serializes tree and sends it as an accessibility event to the extension. | 234 // Serializes tree and sends it as an accessibility event to the extension. |
| 235 void SendDataForTree(const ui::AXTree* tree, | 235 void SendDataForTree(const ui::AXTree* tree, |
| 236 TreeSerializer* serializer, | 236 TreeSerializer* serializer, |
| 237 int routing_id, | 237 int routing_id, |
| 238 BrowserContext* browser_context) { | 238 BrowserContext* browser_context) { |
| 239 ui::AXTreeUpdate update; | 239 ui::AXTreeUpdate update; |
| 240 serializer->SerializeChanges(tree->GetRoot(), &update); | 240 serializer->SerializeChanges(tree->root(), &update); |
| 241 SendUpdate(update, | 241 SendUpdate(update, |
| 242 ui::AX_EVENT_LAYOUT_COMPLETE, | 242 ui::AX_EVENT_LAYOUT_COMPLETE, |
| 243 tree->GetRoot()->id(), | 243 tree->root()->id(), |
| 244 routing_id, | 244 routing_id, |
| 245 browser_context); | 245 browser_context); |
| 246 } | 246 } |
| 247 | 247 |
| 248 // Sends the given AXTreeUpdate to the extension as an accessibility event. | 248 // Sends the given AXTreeUpdate to the extension as an accessibility event. |
| 249 void SendUpdate(ui::AXTreeUpdate update, | 249 void SendUpdate(ui::AXTreeUpdate update, |
| 250 ui::AXEvent event, | 250 ui::AXEvent event, |
| 251 int node_id, | 251 int node_id, |
| 252 int routing_id, | 252 int routing_id, |
| 253 BrowserContext* browser_context) { | 253 BrowserContext* browser_context) { |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 content::BrowserContext* browser_context) { | 391 content::BrowserContext* browser_context) { |
| 392 source_serializer->ChangeTreeSourceForTesting(target_tree_source); | 392 source_serializer->ChangeTreeSourceForTesting(target_tree_source); |
| 393 for (int node_delta = 0; node_delta < state.tree_size; ++node_delta) { | 393 for (int node_delta = 0; node_delta < state.tree_size; ++node_delta) { |
| 394 int id = 1 + (state.starting_node + node_delta) % state.tree_size; | 394 int id = 1 + (state.starting_node + node_delta) % state.tree_size; |
| 395 ui::AXTreeUpdate update; | 395 ui::AXTreeUpdate update; |
| 396 source_serializer->SerializeChanges(target_tree->GetFromId(id), &update); | 396 source_serializer->SerializeChanges(target_tree->GetFromId(id), &update); |
| 397 bool is_last_update = node_delta == state.tree_size - 1; | 397 bool is_last_update = node_delta == state.tree_size - 1; |
| 398 ui::AXEvent event = | 398 ui::AXEvent event = |
| 399 is_last_update ? AX_EVENT_ASSERT_EQUAL : AX_EVENT_IGNORE; | 399 is_last_update ? AX_EVENT_ASSERT_EQUAL : AX_EVENT_IGNORE; |
| 400 state.SendUpdate( | 400 state.SendUpdate( |
| 401 update, event, target_tree->GetRoot()->id(), kTab0Rid, browser_context); | 401 update, event, target_tree->root()->id(), kTab0Rid, browser_context); |
| 402 } | 402 } |
| 403 } | 403 } |
| 404 | 404 |
| 405 // Helper method to send a no-op tree update to tab 0 with the given event. | 405 // Helper method to send a no-op tree update to tab 0 with the given event. |
| 406 void SendEvent(ui::AXEvent event, content::BrowserContext* browser_context) { | 406 void SendEvent(ui::AXEvent event, content::BrowserContext* browser_context) { |
| 407 ui::AXTreeUpdate update; | 407 ui::AXTreeUpdate update; |
| 408 ui::AXNode* root = state.tree0->GetRoot(); | 408 ui::AXNode* root = state.tree0->root(); |
| 409 state.serializer0->SerializeChanges(root, &update); | 409 state.serializer0->SerializeChanges(root, &update); |
| 410 state.SendUpdate(update, event, root->id(), kTab0Rid, browser_context); | 410 state.SendUpdate(update, event, root->id(), kTab0Rid, browser_context); |
| 411 } | 411 } |
| 412 | 412 |
| 413 // Override for chrome.automationInternal.performAction | 413 // Override for chrome.automationInternal.performAction |
| 414 // This is used as a synchronization mechanism; the general flow is: | 414 // This is used as a synchronization mechanism; the general flow is: |
| 415 // 1. The extension requests tree0 and tree1 (on tab 0 and tab 1 respectively) | 415 // 1. The extension requests tree0 and tree1 (on tab 0 and tab 1 respectively) |
| 416 // 2. FakeAutomationInternalEnableTabFunction sends down the trees | 416 // 2. FakeAutomationInternalEnableTabFunction sends down the trees |
| 417 // 3. When the callback for getTree(0) fires, the extension calls doDefault() on | 417 // 3. When the callback for getTree(0) fires, the extension calls doDefault() on |
| 418 // the root node of tree0, which calls into this class's Run() method. | 418 // the root node of tree0, which calls into this class's Run() method. |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 "automationInternal.enableTab", | 512 "automationInternal.enableTab", |
| 513 FakeAutomationInternalEnableTabFunctionFactory)); | 513 FakeAutomationInternalEnableTabFunctionFactory)); |
| 514 ASSERT_TRUE(extensions::ExtensionFunctionDispatcher::OverrideFunction( | 514 ASSERT_TRUE(extensions::ExtensionFunctionDispatcher::OverrideFunction( |
| 515 "automationInternal.performAction", | 515 "automationInternal.performAction", |
| 516 FakeAutomationInternalPerformActionFunctionFactory)); | 516 FakeAutomationInternalPerformActionFunctionFactory)); |
| 517 ASSERT_TRUE(RunExtensionSubtest("automation/tests/generated", | 517 ASSERT_TRUE(RunExtensionSubtest("automation/tests/generated", |
| 518 "generated_trees.html")) << message_; | 518 "generated_trees.html")) << message_; |
| 519 } | 519 } |
| 520 | 520 |
| 521 } // namespace extensions | 521 } // namespace extensions |
| OLD | NEW |