0

Update AccessibilityViewportInfo to use Selection struct.

This CL does not change any behavior, just clean up.

Bug: 387387738
Change-Id: I66b01b4d68fb5c88b41d4dd16cbf4c52cb35196e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6221302
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Ramin Halavati <rhalavati@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1414762}
This commit is contained in:
Ramin Halavati
2025-02-02 23:04:24 -08:00
committed by Chromium LUCI CQ
parent fbb93e42a6
commit 1e8ec3e2ef
5 changed files with 21 additions and 37 deletions

@ -436,10 +436,7 @@ void PdfAccessibilityTree::DoSetAccessibilityViewportInfo(
scroll_ = gfx::PointF(viewport_info.scroll).OffsetFromOrigin();
offset_ = gfx::PointF(viewport_info.offset).OffsetFromOrigin();
orientation_ = viewport_info.orientation;
selection_start_page_index_ = viewport_info.selection_start_page_index;
selection_start_char_index_ = viewport_info.selection_start_char_index;
selection_end_page_index_ = viewport_info.selection_end_page_index;
selection_end_char_index_ = viewport_info.selection_end_char_index;
selection_ = viewport_info.selection;
auto obj = GetPluginContainerAXObject();
if (obj && tree_.size() > 1) {
@ -840,17 +837,17 @@ void PdfAccessibilityTree::UpdateAXTreeDataFromSelection() {
}
tree_data_.sel_is_backward = false;
if (selection_start_page_index_ > selection_end_page_index_) {
if (selection_.start.page_index > selection_.end.page_index) {
tree_data_.sel_is_backward = true;
} else if (selection_start_page_index_ == selection_end_page_index_ &&
selection_start_char_index_ > selection_end_char_index_) {
} else if (selection_.start.page_index == selection_.end.page_index &&
selection_.start.char_index > selection_.end.char_index) {
tree_data_.sel_is_backward = true;
}
FindNodeOffset(selection_start_page_index_, selection_start_char_index_,
FindNodeOffset(selection_.start.page_index, selection_.start.char_index,
&tree_data_.sel_anchor_object_id,
&tree_data_.sel_anchor_offset);
FindNodeOffset(selection_end_page_index_, selection_end_char_index_,
FindNodeOffset(selection_.end.page_index, selection_.end.char_index,
&tree_data_.sel_focus_object_id, &tree_data_.sel_focus_offset);
}

@ -266,10 +266,7 @@ class PdfAccessibilityTree : public ui::AXTreeSource<const ui::AXNode*,
int32_t orientation_ = 0;
gfx::Vector2dF scroll_;
gfx::Vector2dF offset_;
uint32_t selection_start_page_index_ = 0;
uint32_t selection_start_char_index_ = 0;
uint32_t selection_end_page_index_ = 0;
uint32_t selection_end_char_index_ = 0;
chrome_pdf::Selection selection_;
uint32_t page_count_ = 0;
bool is_tagged_ = false;
std::unique_ptr<ui::AXNodeData> doc_node_;

@ -360,10 +360,6 @@ class PdfAccessibilityTreeTest : public content::RenderViewTest {
viewport_info_.scale = 1.0;
viewport_info_.scroll = gfx::Point(0, 0);
viewport_info_.offset = gfx::Point(0, 0);
viewport_info_.selection_start_page_index = 0u;
viewport_info_.selection_start_char_index = 0u;
viewport_info_.selection_end_page_index = 0u;
viewport_info_.selection_end_char_index = 0u;
doc_info_.is_tagged = false;
doc_info_.text_accessible = true;
doc_info_.text_copyable = true;

@ -17,6 +17,18 @@
namespace chrome_pdf {
struct PageCharacterIndex {
// Index of PDF page.
uint32_t page_index = 0;
// Index of character within the PDF page.
uint32_t char_index = 0;
};
struct Selection {
PageCharacterIndex start;
PageCharacterIndex end;
};
struct AccessibilityDocInfo {
bool operator==(const AccessibilityDocInfo& other) const;
bool operator!=(const AccessibilityDocInfo& other) const;
@ -381,10 +393,7 @@ struct AccessibilityViewportInfo {
gfx::Point scroll;
gfx::Point offset;
uint32_t orientation = 0;
uint32_t selection_start_page_index = 0;
uint32_t selection_start_char_index = 0;
uint32_t selection_end_page_index = 0;
uint32_t selection_end_char_index = 0;
Selection selection;
AccessibilityFocusInfo focus_info;
};
@ -431,18 +440,6 @@ enum class AccessibilityScrollAlignment {
kMaxValue = kClosestToEdge,
};
struct PageCharacterIndex {
// Index of PDF page.
uint32_t page_index = 0;
// Index of character within the PDF page.
uint32_t char_index = 0;
};
struct Selection {
PageCharacterIndex start;
PageCharacterIndex end;
};
struct AccessibilityActionData {
AccessibilityActionData();
AccessibilityActionData(

@ -2883,10 +2883,7 @@ void PdfViewWebPlugin::PrepareAndSetAccessibilityViewportInfo() {
std::optional<Selection> selection = engine_->GetSelection();
if (selection.has_value()) {
viewport_info.selection_start_page_index = selection->start.page_index;
viewport_info.selection_start_char_index = selection->start.char_index;
viewport_info.selection_end_page_index = selection->end.page_index;
viewport_info.selection_end_char_index = selection->end.char_index;
viewport_info.selection = *selection;
}
pdf_accessibility_data_handler_->SetAccessibilityViewportInfo(