1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef InspectorAccessibilityAgent_h
#define InspectorAccessibilityAgent_h
#include "core/inspector/InspectorBaseAgent.h"
#include "core/inspector/protocol/Accessibility.h"
#include "modules/ModulesExport.h"
namespace blink {
class AXObject;
class AXObjectCacheImpl;
class InspectorDOMAgent;
class Page;
using protocol::Accessibility::AXNode;
using protocol::Accessibility::AXNodeId;
class MODULES_EXPORT InspectorAccessibilityAgent
: public InspectorBaseAgent<protocol::Accessibility::Metainfo> {
WTF_MAKE_NONCOPYABLE(InspectorAccessibilityAgent);
public:
InspectorAccessibilityAgent(Page*, InspectorDOMAgent*);
// Base agent methods.
DECLARE_VIRTUAL_TRACE();
// Protocol methods.
Response getPartialAXTree(
int domNodeId,
Maybe<bool> fetchRelatives,
std::unique_ptr<protocol::Array<protocol::Accessibility::AXNode>>*)
override;
private:
std::unique_ptr<AXNode> buildObjectForIgnoredNode(
Node* domNode,
AXObject*,
bool fetchRelatives,
std::unique_ptr<protocol::Array<AXNode>>& nodes,
AXObjectCacheImpl&) const;
void populateDOMNodeAncestors(Node& inspectedDOMNode,
AXNode&,
std::unique_ptr<protocol::Array<AXNode>>& nodes,
AXObjectCacheImpl&) const;
std::unique_ptr<AXNode> buildProtocolAXObject(
AXObject&,
AXObject* inspectedAXObject,
bool fetchRelatives,
std::unique_ptr<protocol::Array<AXNode>>& nodes,
AXObjectCacheImpl&) const;
void fillCoreProperties(AXObject&,
AXObject* inspectedAXObject,
bool fetchRelatives,
AXNode&,
std::unique_ptr<protocol::Array<AXNode>>& nodes,
AXObjectCacheImpl&) const;
void addAncestors(AXObject& firstAncestor,
AXObject* inspectedAXObject,
std::unique_ptr<protocol::Array<AXNode>>& nodes,
AXObjectCacheImpl&) const;
void populateRelatives(AXObject&,
AXObject* inspectedAXObject,
AXNode&,
std::unique_ptr<protocol::Array<AXNode>>& nodes,
AXObjectCacheImpl&) const;
void addSiblingsOfIgnored(
std::unique_ptr<protocol::Array<AXNodeId>>& childIds,
AXObject& parentAXObject,
AXObject* inspectedAXObject,
std::unique_ptr<protocol::Array<AXNode>>& nodes,
AXObjectCacheImpl&) const;
void addChild(std::unique_ptr<protocol::Array<AXNodeId>>& childIds,
AXObject& childAXObject,
AXObject* inspectedAXObject,
std::unique_ptr<protocol::Array<AXNode>>& nodes,
AXObjectCacheImpl&) const;
void addChildren(AXObject&,
AXObject* inspectedAXObject,
std::unique_ptr<protocol::Array<AXNodeId>>& childIds,
std::unique_ptr<protocol::Array<AXNode>>& nodes,
AXObjectCacheImpl&) const;
Member<Page> m_page;
Member<InspectorDOMAgent> m_domAgent;
};
} // namespace blink
#endif // InspectorAccessibilityAgent_h
|