15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/accessibility/accessibility_events.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h" 83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/browser/accessibility/accessibility_extension_api.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/accessibility/accessibility_extension_api_constants.h" 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/chrome_notification_types.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile_manager.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/notification_service.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/notification_types.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace keys = extension_accessibility_api_constants; 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void SendControlAccessibilityNotification( 19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ui::AXEvent event, 203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) AccessibilityControlInfo* info) { 210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch Profile* profile = info->profile(); 223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) if (profile->ShouldSendAccessibilityEvents()) { 233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ExtensionAccessibilityEventRouter::GetInstance()->HandleControlEvent( 243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) event, 253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) info); 263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) } 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void SendMenuAccessibilityNotification( 30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ui::AXEvent event, 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) AccessibilityMenuInfo* info) { 320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch Profile* profile = info->profile(); 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (profile->ShouldSendAccessibilityEvents()) { 343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ExtensionAccessibilityEventRouter::GetInstance()->HandleMenuEvent( 353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) event, 363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) info); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void SendWindowAccessibilityNotification( 41a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ui::AXEvent event, 423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) AccessibilityWindowInfo* info) { 430529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch Profile* profile = info->profile(); 443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) if (profile->ShouldSendAccessibilityEvents()) { 453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ExtensionAccessibilityEventRouter::GetInstance()->HandleWindowEvent( 463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) event, 473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) info); 483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) } 493551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} 503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 513551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityControlInfo::AccessibilityControlInfo( 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Profile* profile, const std::string& name) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityEventInfo(profile), 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) name_(name) { 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityControlInfo::~AccessibilityControlInfo() { 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void AccessibilityControlInfo::SerializeToDict( 625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue *dict) const { 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetString(keys::kNameKey, name_); 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetString(keys::kTypeKey, type()); 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!context_.empty()) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetString(keys::kContextKey, context_); 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityWindowInfo::AccessibilityWindowInfo(Profile* profile, 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& window_name) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, window_name) { 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityWindowInfo::type() const { 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeWindow; 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityButtonInfo::AccessibilityButtonInfo(Profile* profile, 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& button_name, 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, button_name) { 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_context(context); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityButtonInfo::type() const { 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeButton; 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityLinkInfo::AccessibilityLinkInfo(Profile* profile, 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& link_name, 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context) 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, link_name) { 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_context(context); 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityLinkInfo::type() const { 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeLink; 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityRadioButtonInfo::AccessibilityRadioButtonInfo( 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Profile* profile, 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool checked, 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index, 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, name), 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) checked_(checked), 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) item_index_(item_index), 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) item_count_(item_count) { 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_context(context); 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityRadioButtonInfo::type() const { 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeRadioButton; 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void AccessibilityRadioButtonInfo::SerializeToDict( 1195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue *dict) const { 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityControlInfo::SerializeToDict(dict); 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetBoolean(keys::kCheckedKey, checked_); 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kItemIndexKey, item_index_); 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kItemCountKey, item_count_); 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityCheckboxInfo::AccessibilityCheckboxInfo(Profile* profile, 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool checked) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, name), 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) checked_(checked) { 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_context(context); 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityCheckboxInfo::type() const { 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeCheckbox; 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void AccessibilityCheckboxInfo::SerializeToDict( 1405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue *dict) const { 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityControlInfo::SerializeToDict(dict); 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetBoolean(keys::kCheckedKey, checked_); 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityTabInfo::AccessibilityTabInfo(Profile* profile, 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& tab_name, 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int tab_index, 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int tab_count) 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, tab_name), 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tab_index_(tab_index), 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tab_count_(tab_count) { 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_context(context); 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityTabInfo::type() const { 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeTab; 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void AccessibilityTabInfo::SerializeToDict(base::DictionaryValue *dict) const { 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityControlInfo::SerializeToDict(dict); 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kItemIndexKey, tab_index_); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kItemCountKey, tab_count_); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityComboBoxInfo::AccessibilityComboBoxInfo(Profile* profile, 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value, 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index, 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count) 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, name), 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value_(value), 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) item_index_(item_index), 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) item_count_(item_count) { 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_context(context); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityComboBoxInfo::type() const { 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeComboBox; 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void AccessibilityComboBoxInfo::SerializeToDict( 1845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue *dict) const { 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityControlInfo::SerializeToDict(dict); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetString(keys::kValueKey, value_); 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kItemIndexKey, item_index_); 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kItemCountKey, item_count_); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityTextBoxInfo::AccessibilityTextBoxInfo(Profile* profile, 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool password) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, name), 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) password_(password), 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) selection_start_(0), 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) selection_end_(0) { 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_context(context); 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityTextBoxInfo::type() const { 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeTextBox; 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void AccessibilityTextBoxInfo::SerializeToDict( 2075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue *dict) const { 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityControlInfo::SerializeToDict(dict); 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetString(keys::kValueKey, value_); 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetBoolean(keys::kPasswordKey, password_); 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kSelectionStartKey, selection_start_); 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kSelectionEndKey, selection_end_); 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityListBoxInfo::AccessibilityListBoxInfo(Profile* profile, 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value, 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index, 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count) 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, name), 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value_(value), 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) item_index_(item_index), 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) item_count_(item_count) { 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_context(context); 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityListBoxInfo::type() const { 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeListBox; 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void AccessibilityListBoxInfo::SerializeToDict( 2335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue *dict) const { 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityControlInfo::SerializeToDict(dict); 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetString(keys::kValueKey, value_); 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kItemIndexKey, item_index_); 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kItemCountKey, item_count_); 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityMenuInfo::AccessibilityMenuInfo(Profile* profile, 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& menu_name) 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, menu_name) { 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityMenuInfo::type() const { 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeMenu; 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilityMenuItemInfo::AccessibilityMenuItemInfo(Profile* profile, 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool has_submenu, 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_index, 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int item_count) 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, name), 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) has_submenu_(has_submenu), 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) item_index_(item_index), 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) item_count_(item_count) { 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_context(context); 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilityMenuItemInfo::type() const { 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeMenuItem; 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void AccessibilityMenuItemInfo::SerializeToDict( 2675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue *dict) const { 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityControlInfo::SerializeToDict(dict); 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetBoolean(keys::kHasSubmenuKey, has_submenu_); 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kItemIndexKey, item_index_); 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetInteger(keys::kItemCountKey, item_count_); 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 274a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)AccessibilityTreeInfo::AccessibilityTreeInfo(Profile* profile, 275a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const std::string& menu_name) 276a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) : AccessibilityControlInfo(profile, menu_name) { 277a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 278a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 279a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)const char* AccessibilityTreeInfo::type() const { 280a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return keys::kTypeTree; 281a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 282a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 283a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)AccessibilityTreeItemInfo::AccessibilityTreeItemInfo(Profile* profile, 284a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const std::string& name, 285a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const std::string& context, 286a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_depth, 287a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_index, 288a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int item_count, 289a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int children_count, 290a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) bool is_expanded) 291a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) : AccessibilityControlInfo(profile, name), 292a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) item_depth_(item_depth), 293a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) item_index_(item_index), 294a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) item_count_(item_count), 295a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) children_count_(children_count), 296a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) is_expanded_(is_expanded) { 297a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) set_context(context); 298a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 299a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 300a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)const char* AccessibilityTreeItemInfo::type() const { 301a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return keys::kTypeTreeItem; 302a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 303a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 3045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void AccessibilityTreeItemInfo::SerializeToDict( 3055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue *dict) const { 306a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) AccessibilityControlInfo::SerializeToDict(dict); 307a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetInteger(keys::kItemDepthKey, item_depth_); 308a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetInteger(keys::kItemIndexKey, item_index_); 309a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetInteger(keys::kItemCountKey, item_count_); 310a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetInteger(keys::kChildrenCountKey, children_count_); 311a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetBoolean(keys::kItemExpandedKey, is_expanded_); 312a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 313a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessibilitySliderInfo::AccessibilitySliderInfo(Profile* profile, 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& name, 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& context, 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value) 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : AccessibilityControlInfo(profile, name), 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value_(value) { 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_context(context); 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* AccessibilitySliderInfo::type() const { 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return keys::kTypeSlider; 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void AccessibilitySliderInfo::SerializeToDict( 3285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::DictionaryValue *dict) const { 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityControlInfo::SerializeToDict(dict); 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict->SetString(keys::kStringValueKey, value_); 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 332f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 333f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)AccessibilityAlertInfo::AccessibilityAlertInfo(Profile* profile, 334f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const std::string& name) 335f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) : AccessibilityControlInfo(profile, name) { 336f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 337f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 338f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)const char* AccessibilityAlertInfo::type() const { 339f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return keys::kTypeAlert; 340f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 341