| # Copyright 2017 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/chromeos/ui_mode.gni") |
| import("//build/config/features.gni") |
| import( |
| "//chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni") |
| import("//chrome/common/features.gni") |
| import("//chrome/test/base/js2gtest.gni") |
| import("//testing/test.gni") |
| import("//third_party/closure_compiler/compile_js.gni") |
| |
| assert(is_chromeos_ash) |
| |
| switch_access_dir = |
| "$root_out_dir/resources/chromeos/accessibility/switch_access" |
| |
| group("build") { |
| deps = [ ":switch_access_copied_files" ] |
| } |
| |
| # Instead of setting up one copy target for each subdirectory, use a script |
| # to copy all files. |
| run_jsbundler("switch_access_copied_files") { |
| mode = "copy" |
| dest_dir = switch_access_dir |
| sources = [ |
| "action_manager.js", |
| "auto_scan_manager.js", |
| "background.html", |
| "background.js", |
| "cache.js", |
| "commands.js", |
| "focus_ring_manager.js", |
| "history.js", |
| "icons/back.svg", |
| "icons/copy.svg", |
| "icons/cut.svg", |
| "icons/decrement.svg", |
| "icons/dictation.svg", |
| "icons/increment.svg", |
| "icons/jumpToBeginningOfText.svg", |
| "icons/jumpToEndOfText.svg", |
| "icons/keyboard.svg", |
| "icons/moveBackwardOneCharOfText.svg", |
| "icons/moveBackwardOneWordOfText.svg", |
| "icons/moveCursor.svg", |
| "icons/moveDownOneLineOfText.svg", |
| "icons/moveForwardOneCharOfText.svg", |
| "icons/moveForwardOneWordOfText.svg", |
| "icons/moveUpOneLineOfText.svg", |
| "icons/paste.svg", |
| "icons/scrollDownOrForward.svg", |
| "icons/scrollLeft.svg", |
| "icons/scrollRight.svg", |
| "icons/scrollUpOrBackward.svg", |
| "icons/select.svg", |
| "icons/settings.svg", |
| "icons/showContextMenu.svg", |
| "icons/textSelectionEnd.svg", |
| "icons/textSelectionStart.svg", |
| "item_scan_manager.js", |
| "menu_manager.js", |
| "metrics.js", |
| "navigator.js", |
| "navigator_interface.js", |
| "nodes/back_button_node.js", |
| "nodes/basic_node.js", |
| "nodes/combo_box_node.js", |
| "nodes/desktop_node.js", |
| "nodes/editable_text_node.js", |
| "nodes/group_node.js", |
| "nodes/keyboard_node.js", |
| "nodes/modal_dialog_node.js", |
| "nodes/slider_node.js", |
| "nodes/switch_access_node.js", |
| "nodes/tab_node.js", |
| "nodes/window_node.js", |
| "point_scan_manager.js", |
| "preference_manager.js", |
| "switch_access.js", |
| "switch_access_constants.js", |
| "switch_access_predicate.js", |
| "text_navigation_manager.js", |
| ] |
| rewrite_rules = [ |
| rebase_path(".", root_build_dir) + ":", |
| rebase_path(closure_library_dir, root_build_dir) + ":closure", |
| ] |
| } |
| |
| source_set("browser_tests") { |
| testonly = true |
| assert(enable_extensions) |
| |
| deps = [ ":switch_access_extjs_tests" ] |
| |
| data = [ |
| "//chrome/browser/resources/chromeos/accessibility/common/", |
| "//chrome/browser/resources/chromeos/accessibility/switch_access/", |
| ] |
| data += js2gtest_js_libraries |
| } |
| |
| js2gtest("switch_access_extjs_tests") { |
| test_type = "extension" |
| sources = [ |
| "auto_scan_manager_test.js", |
| "focus_ring_manager_test.js", |
| "item_scan_manager_test.js", |
| "nodes/basic_node_test.js", |
| "nodes/desktop_node_test.js", |
| "nodes/group_node_test.js", |
| "nodes/tab_node_test.js", |
| "point_scan_manager_test.js", |
| |
| # TODO(1316408): Tests were broken at head. Re-enable tests when they pass. |
| # "saatlite/gen/saatlite_tests.js", |
| "switch_access_predicate_test.js", |
| "switch_access_test.js", |
| "text_navigation_manager_test.js", |
| ] |
| gen_include_files = [ |
| "../common/testing/accessibility_test_base.js", |
| "../common/testing/assert_additions.js", |
| "../common/testing/callback_helper.js", |
| "../common/testing/e2e_test_base.js", |
| "switch_access_e2e_test_base.js", |
| "test_utility.js", |
| ] |
| |
| # The test base classes generate C++ code with these deps. |
| deps = [ |
| "//ash", |
| "//ash/keyboard/ui", |
| "//base", |
| "//chrome/browser/ash", |
| "//chrome/browser/ash/crosapi", |
| "//chrome/common", |
| "//chromeos", |
| ] |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| } |
| |
| js_type_check("closure_compile") { |
| deps = [ |
| ":action_manager", |
| ":auto_scan_manager", |
| ":back_button_node", |
| ":background", |
| ":basic_node", |
| ":cache", |
| ":combo_box_node", |
| ":commands", |
| ":desktop_node", |
| ":editable_text_node", |
| ":focus_ring_manager", |
| ":group_node", |
| ":history", |
| ":item_scan_manager", |
| ":keyboard_node", |
| ":menu_manager", |
| ":metrics", |
| ":modal_dialog_node", |
| ":navigator", |
| ":navigator_interface", |
| ":point_scan_manager", |
| ":preference_manager", |
| ":slider_node", |
| ":switch_access", |
| ":switch_access_constants", |
| ":switch_access_node", |
| ":switch_access_predicate", |
| ":tab_node", |
| ":text_navigation_manager", |
| ":window_node", |
| "../common:automation_predicate", |
| "../common:closure_shim", |
| "../common:constants", |
| "../common:event_generator", |
| "../common:key_code", |
| "../common:rect_util", |
| "../common:repeated_event_handler", |
| "../common:repeated_tree_change_handler", |
| "../common:tree_walker", |
| ] |
| } |
| |
| js_library("action_manager") { |
| deps = [ |
| ":switch_access_constants", |
| ":switch_access_node", |
| "../common:array_util", |
| ] |
| externs_list = [ "$externs_path/automation.js" ] |
| } |
| |
| js_library("auto_scan_manager") { |
| deps = [ ":switch_access_constants" ] |
| } |
| |
| js_library("background") { |
| deps = [ |
| ":switch_access", |
| "../common:instance_checker", |
| ] |
| externs_list = [ "$externs_path/chrome_extensions.js" ] |
| } |
| |
| js_library("back_button_node") { |
| sources = [ "nodes/back_button_node.js" ] |
| deps = [ |
| ":switch_access_constants", |
| ":switch_access_node", |
| "../common:rect_util", |
| ] |
| externs_list = [ |
| "$externs_path/accessibility_private.js", |
| "$externs_path/automation.js", |
| ] |
| } |
| |
| js_library("basic_node") { |
| sources = [ "nodes/basic_node.js" ] |
| deps = [ |
| ":back_button_node", |
| ":cache", |
| ":switch_access_constants", |
| ":switch_access_node", |
| ":switch_access_predicate", |
| "../common:automation_predicate", |
| "../common:constants", |
| "../common:repeated_event_handler", |
| "../common:tree_walker", |
| ] |
| externs_list = [ |
| "$externs_path/accessibility_private.js", |
| "$externs_path/automation.js", |
| ] |
| } |
| |
| js_library("cache") { |
| externs_list = [ "$externs_path/automation.js" ] |
| } |
| |
| js_library("combo_box_node") { |
| sources = [ "nodes/combo_box_node.js" ] |
| deps = [ |
| ":basic_node", |
| ":switch_access_constants", |
| "../common:event_generator", |
| "../common:key_code", |
| ] |
| } |
| |
| js_library("commands") { |
| deps = [ |
| ":action_manager", |
| ":auto_scan_manager", |
| ":navigator", |
| ] |
| externs_list = [ "$externs_path/accessibility_private.js" ] |
| } |
| |
| js_library("desktop_node") { |
| sources = [ "nodes/desktop_node.js" ] |
| deps = [ ":basic_node" ] |
| externs_list = [ "$externs_path/automation.js" ] |
| } |
| |
| js_library("editable_text_node") { |
| sources = [ "nodes/editable_text_node.js" ] |
| deps = [ |
| ":basic_node", |
| ":switch_access_constants", |
| ":switch_access_node", |
| ] |
| externs_list = [ |
| "$externs_path/accessibility_private.js", |
| "$externs_path/automation.js", |
| ] |
| } |
| |
| js_library("focus_ring_manager") { |
| deps = [ |
| ":basic_node", |
| ":switch_access_constants", |
| ":switch_access_node", |
| ] |
| externs_list = [ "$externs_path/accessibility_private.js" ] |
| } |
| |
| js_library("group_node") { |
| sources = [ "nodes/group_node.js" ] |
| deps = [ |
| ":back_button_node", |
| ":basic_node", |
| ":switch_access_constants", |
| ":switch_access_node", |
| "../common:rect_util", |
| ] |
| externs_list = [ |
| "$externs_path/accessibility_private.js", |
| "$externs_path/automation.js", |
| ] |
| } |
| |
| js_library("history") { |
| deps = [ |
| ":basic_node", |
| ":cache", |
| ":desktop_node", |
| ":switch_access_node", |
| ":switch_access_predicate", |
| ] |
| externs_list = [ "$externs_path/automation.js" ] |
| } |
| |
| js_library("item_scan_manager") { |
| deps = [ |
| ":action_manager", |
| ":basic_node", |
| ":desktop_node", |
| ":focus_ring_manager", |
| ":history", |
| ":keyboard_node", |
| ":menu_manager", |
| ":metrics", |
| ":modal_dialog_node", |
| ":navigator_interface", |
| ":switch_access_constants", |
| ":switch_access_node", |
| ":switch_access_predicate", |
| "../common:automation_util", |
| "../common:event_handler", |
| "../common:repeated_event_handler", |
| ] |
| externs_list = [ |
| "$externs_path/accessibility_private.js", |
| "$externs_path/automation.js", |
| ] |
| } |
| |
| js_library("keyboard_node") { |
| sources = [ "nodes/keyboard_node.js" ] |
| deps = [ |
| ":basic_node", |
| ":group_node", |
| ":switch_access_constants", |
| ":switch_access_node", |
| ":switch_access_predicate", |
| "../common:constants", |
| "../common:event_generator", |
| "../common:rect_util", |
| "../common:tree_walker", |
| ] |
| externs_list = [ |
| "$externs_path/accessibility_private.js", |
| "$externs_path/automation.js", |
| ] |
| } |
| |
| js_library("menu_manager") { |
| deps = [ |
| ":switch_access_constants", |
| ":switch_access_node", |
| "../common:array_util", |
| ] |
| externs_list = [ |
| "$externs_path/accessibility_private.js", |
| "$externs_path/automation.js", |
| ] |
| } |
| |
| js_library("metrics") { |
| deps = [ ":switch_access_constants" ] |
| externs_list = [ "$externs_path/metrics_private.js" ] |
| } |
| |
| js_library("modal_dialog_node") { |
| sources = [ "nodes/modal_dialog_node.js" ] |
| deps = [ |
| ":basic_node", |
| ":switch_access_constants", |
| ":switch_access_node", |
| "../common:event_generator", |
| "../common:key_code", |
| ] |
| externs_list = [ "$externs_path/automation.js" ] |
| } |
| |
| js_library("navigator") { |
| deps = [ ":navigator_interface" ] |
| } |
| |
| js_library("navigator_interface") { |
| deps = [ ":basic_node" ] |
| externs_list = [ |
| "$externs_path/accessibility_private.js", |
| "$externs_path/automation.js", |
| ] |
| } |
| |
| js_library("point_scan_manager") { |
| deps = [ |
| ":focus_ring_manager", |
| ":switch_access", |
| "../common:constants", |
| ] |
| externs_list = [ "$externs_path/accessibility_private.js" ] |
| } |
| |
| js_library("preference_manager") { |
| deps = [ ":switch_access_constants" ] |
| externs_list = [ "$externs_path/settings_private.js" ] |
| } |
| |
| js_library("slider_node") { |
| sources = [ "nodes/slider_node.js" ] |
| deps = [ |
| ":basic_node", |
| ":switch_access_constants", |
| "../common:event_generator", |
| "../common:key_code", |
| ] |
| externs_list = [ "$externs_path/automation.js" ] |
| } |
| |
| js_library("switch_access") { |
| deps = [ |
| ":auto_scan_manager", |
| ":commands", |
| ":menu_manager", |
| ":navigator", |
| ":preference_manager", |
| ":switch_access_constants", |
| "../common:constants", |
| "../common:tree_walker", |
| ] |
| externs_list = [ |
| "$externs_path/automation.js", |
| "$externs_path/command_line_private.js", |
| "$externs_path/metrics_private.js", |
| "$externs_path/virtual_keyboard_private.js", |
| ] |
| } |
| |
| js_library("switch_access_constants") { |
| } |
| |
| js_library("switch_access_node") { |
| sources = [ "nodes/switch_access_node.js" ] |
| deps = [ ":switch_access_constants" ] |
| externs_list = [ |
| "$externs_path/accessibility_private.js", |
| "$externs_path/automation.js", |
| ] |
| } |
| |
| js_library("switch_access_predicate") { |
| deps = [ |
| ":cache", |
| ":switch_access_constants", |
| ":switch_access_node", |
| "../common:automation_predicate", |
| ] |
| externs_list = [ "$externs_path/automation.js" ] |
| } |
| |
| js_library("tab_node") { |
| sources = [ "nodes/tab_node.js" ] |
| deps = [ |
| ":basic_node", |
| ":switch_access_constants", |
| ":switch_access_node", |
| "../common:rect_util", |
| ] |
| externs_list = [ "$externs_path/automation.js" ] |
| } |
| |
| js_library("text_navigation_manager") { |
| deps = [ |
| "../common:event_generator", |
| "../common:key_code", |
| ] |
| externs_list = [ |
| "$externs_path/accessibility_private.js", |
| "$externs_path/automation.js", |
| "$externs_path/clipboard.js", |
| ] |
| } |
| |
| js_library("window_node") { |
| sources = [ "nodes/window_node.js" ] |
| deps = [ |
| ":basic_node", |
| ":switch_access_constants", |
| ":switch_access_node", |
| ] |
| externs_list = [ "$externs_path/automation.js" ] |
| } |