#include "content/browser/accessibility/hit_testing_browsertest.h"
#include "base/check.h"
#include "base/command_line.h"
#include "base/strings/stringprintf.h"
#include "base/test/bind.h"
#include "build/build_config.h"
#include "build/chromecast_buildflags.h"
#include "build/chromeos_buildflags.h"
#include "content/browser/accessibility/accessibility_tree_formatter_blink.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/public/browser/ax_inspect_factory.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/accessibility_notification_waiter.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/content_browser_test.h"
#include "content/public/test/content_browser_test_utils.h"
#include "content/public/test/test_utils.h"
#include "content/shell/browser/shell.h"
#include "content/test/content_browser_test_utils_internal.h"
#include "net/dns/mock_host_resolver.h"
#include "ui/accessibility/ax_clipping_behavior.h"
#include "ui/accessibility/ax_coordinate_system.h"
#include "ui/accessibility/ax_node_id_forward.h"
#include "ui/accessibility/platform/ax_platform_node_base.h"
#include "ui/accessibility/platform/ax_platform_tree_manager.h"
#include "ui/accessibility/platform/browser_accessibility.h"
#include "ui/accessibility/platform/browser_accessibility_manager.h"
#include "ui/display/display_switches.h"
#include "ui/gfx/geometry/vector2d_conversions.h"
namespace content {
AXTreeFormatter;
#define EXPECT_ACCESSIBILITY_HIT_TEST_RESULT(css_point, expected_node, \
hit_node) …
AccessibilityHitTestingBrowserTest::AccessibilityHitTestingBrowserTest() =
default;
AccessibilityHitTestingBrowserTest::~AccessibilityHitTestingBrowserTest() =
default;
void AccessibilityHitTestingBrowserTest::SetUpCommandLine(
base::CommandLine* command_line) { … }
std::string AccessibilityHitTestingBrowserTest::TestPassToString::operator()(
const ::testing::TestParamInfo<double>& info) const { … }
ui::BrowserAccessibilityManager*
AccessibilityHitTestingBrowserTest::GetRootBrowserAccessibilityManager() { … }
float AccessibilityHitTestingBrowserTest::GetDeviceScaleFactor() { … }
float AccessibilityHitTestingBrowserTest::GetPageScaleFactor() { … }
gfx::Rect
AccessibilityHitTestingBrowserTest::GetViewBoundsInScreenCoordinates() { … }
gfx::Point AccessibilityHitTestingBrowserTest::CSSToFramePoint(
gfx::Point css_point) { … }
gfx::Point AccessibilityHitTestingBrowserTest::FrameToCSSPoint(
gfx::Point frame_point) { … }
gfx::Point AccessibilityHitTestingBrowserTest::CSSToPhysicalPixelPoint(
gfx::Point css_point) { … }
ui::BrowserAccessibility*
AccessibilityHitTestingBrowserTest::HitTestAndWaitForResultWithEvent(
const gfx::Point& point,
ax::mojom::Event event_to_fire) { … }
ui::BrowserAccessibility*
AccessibilityHitTestingBrowserTest::HitTestAndWaitForResult(
const gfx::Point& point) { … }
ui::BrowserAccessibility*
AccessibilityHitTestingBrowserTest::AsyncHitTestAndWaitForCallback(
const gfx::Point& point) { … }
ui::BrowserAccessibility*
AccessibilityHitTestingBrowserTest::CallCachingAsyncHitTest(
const gfx::Point& page_point) { … }
ui::BrowserAccessibility*
AccessibilityHitTestingBrowserTest::CallNearestLeafNode(
const gfx::Point& page_point) { … }
void AccessibilityHitTestingBrowserTest::SynchronizeThreads() { … }
void AccessibilityHitTestingBrowserTest::SimulatePinchZoom(
float desired_page_scale) { … }
std::string
AccessibilityHitTestingBrowserTest::FormatHitTestAccessibilityTree() { … }
std::string AccessibilityHitTestingBrowserTest::GetScopedTrace(
gfx::Point css_point) { … }
class AccessibilityHitTestingCrossProcessBrowserTest
: public AccessibilityHitTestingBrowserTest { … };
INSTANTIATE_TEST_SUITE_P(…);
INSTANTIATE_TEST_SUITE_P(…);
#if defined(THREAD_SANITIZER)
#define MAYBE_CachingAsyncHitTest …
#else
#define MAYBE_CachingAsyncHitTest …
#endif
IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
MAYBE_CachingAsyncHitTest) { … }
#if defined(THREAD_SANITIZER)
#define MAYBE_HitTest …
#else
#define MAYBE_HitTest …
#endif
IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest, MAYBE_HitTest) { … }
#if !BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
#define MAYBE_HitTestInPopup …
#else
#define MAYBE_HitTestInPopup …
#endif
IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
MAYBE_HitTestInPopup) { … }
#endif
IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
HitTestOutsideDocumentBoundsReturnsRoot) { … }
IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingCrossProcessBrowserTest,
HitTestingInCrossProcessIframeWithScrolling) { … }
IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
CachingAsyncHitTestMissesElement) { … }
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC)
IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
DISABLED_CachingAsyncHitTest_WithPinchZoom) { … }
IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
DISABLED_HitTest_WithPinchZoom) { … }
IN_PROC_BROWSER_TEST_P(
AccessibilityHitTestingBrowserTest,
DISABLED_CachingAsyncHitTestMissesElement_WithPinchZoom) { … }
#endif
#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
IN_PROC_BROWSER_TEST_P(AccessibilityHitTestingBrowserTest,
NearestLeafInIframes) { … }
#endif
}