Commit eea8e690 authored by David Tseng's avatar David Tseng Committed by Commit Bot

Add an option to AXEventGenerator to always fire load complete

R=dmazzoni@chromium.org

Fixed: 927697
Change-Id: If7e8aa4898d44b38f9b2df7cdca7a2aed7c16063
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2210820
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#771297}
parent e1f1e185
......@@ -248,6 +248,7 @@ AutomationAXTreeWrapper::AutomationAXTreeWrapper(
: tree_id_(tree_id), owner_(owner), event_generator_(&tree_) {
tree_.AddObserver(this);
ui::AXTreeManagerMap::GetInstance().AddTreeManager(tree_id, this);
event_generator_.set_always_fire_load_complete(true);
}
AutomationAXTreeWrapper::~AutomationAXTreeWrapper() {
......
......@@ -616,6 +616,9 @@ void AXEventGenerator::FireRelationSourceEvents(AXTree* tree,
// Attempts to suppress load-related events that we presume no AT will be
// interested in under any circumstances, such as pages which have no size.
bool AXEventGenerator::ShouldFireLoadEvents(AXNode* node) {
if (always_fire_load_complete_)
return true;
const AXNodeData& data = node->data();
return data.relative_bounds.bounds.width() ||
data.relative_bounds.bounds.height();
......
......@@ -170,6 +170,10 @@ class AX_EXPORT AXEventGenerator : public AXTreeObserver {
// same order they were added.
void AddEvent(ui::AXNode* node, Event event);
void set_always_fire_load_complete(bool val) {
always_fire_load_complete_ = val;
}
protected:
// AXTreeObserver overrides.
void OnNodeDataChanged(AXTree* tree,
......@@ -241,6 +245,8 @@ class AX_EXPORT AXEventGenerator : public AXTreeObserver {
// OnAtomicUpdateFinished. List of nodes whose active descendant changed.
std::vector<AXNode*> active_descendant_changed_;
bool always_fire_load_complete_ = false;
// Please make sure that this ScopedObserver is always declared last in order
// to prevent any use-after-free.
ScopedObserver<AXTree, AXTreeObserver> tree_event_observer_{this};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment