blob: 04936836aa97d0ff12276d597723954dfeaf3851 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_FUCHSIA_H_
#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_FUCHSIA_H_
#include <lib/inspect/cpp/vmo/types.h>
#include "content/browser/accessibility/browser_accessibility_manager.h"
#include "content/common/content_export.h"
#include "ui/accessibility/platform/fuchsia/accessibility_bridge_fuchsia.h"
namespace ui {
class AXPlatformTreeManagerDelegate;
}
namespace content {
class BrowserAccessibilityFuchsia;
// Manages a tree of BrowserAccessibilityFuchsia objects.
class CONTENT_EXPORT BrowserAccessibilityManagerFuchsia
: public BrowserAccessibilityManager {
public:
BrowserAccessibilityManagerFuchsia(
const ui::AXTreeUpdate& initial_tree,
ui::AXPlatformTreeManagerDelegate* delegate);
~BrowserAccessibilityManagerFuchsia() override;
BrowserAccessibilityManagerFuchsia(
const BrowserAccessibilityManagerFuchsia&) = delete;
BrowserAccessibilityManagerFuchsia& operator=(
const BrowserAccessibilityManagerFuchsia&) = delete;
static ui::AXTreeUpdate GetEmptyDocument();
// AXTreeManager override.
void FireFocusEvent(ui::AXNode* node) override;
// BrowserAccessibilityManager overrides.
void FireBlinkEvent(ax::mojom::Event event_type,
BrowserAccessibility* node,
int action_request_id) override;
void UpdateDeviceScaleFactor() override;
// Sends hit test result to fuchsia.
void OnHitTestResult(int action_request_id, BrowserAccessibility* node);
// Returns the accessibility bridge instance for this manager's native window.
ui::AccessibilityBridgeFuchsia* GetAccessibilityBridge() const;
// Test-only method to set the return value of GetAccessibilityBridge().
void SetAccessibilityBridgeForTest(
ui::AccessibilityBridgeFuchsia* accessibility_bridge_for_test);
private:
// Accessibility bridge instance to use for tests, if set.
ui::AccessibilityBridgeFuchsia* accessibility_bridge_for_test_ = nullptr;
// Node to hold this object fuchsia inspect data.
inspect::Node inspect_node_;
// Node to output a dump of this object's AXTree.
inspect::LazyNode tree_dump_node_;
};
} // namespace content
#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_FUCHSIA_H_