Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(477)

Unified Diff: components/pdf/renderer/pdf_accessibility_tree.cc

Issue 2100753003: Enable PDF accessibility when RenderFrame's accessibility mode changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix win assertion Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/pdf/renderer/pdf_accessibility_tree.cc
diff --git a/components/pdf/renderer/pdf_accessibility_tree.cc b/components/pdf/renderer/pdf_accessibility_tree.cc
index 276168f2ce2a09dad7a6c0b84dfe0983d234324f..2a4f3188ec58d94516afc3072f9560c658a4412f 100644
--- a/components/pdf/renderer/pdf_accessibility_tree.cc
+++ b/components/pdf/renderer/pdf_accessibility_tree.cc
@@ -42,12 +42,9 @@ gfx::RectF ToGfxRectF(const PP_FloatRect& r) {
}
PdfAccessibilityTree::PdfAccessibilityTree(
- content::RenderView* render_view)
- : render_view_(render_view),
- render_accessibility_(nullptr),
+ content::RenderFrame* render_frame)
+ : render_frame_(render_frame),
zoom_(1.0) {
- content::RenderFrame* render_frame = render_view->GetMainRenderFrame();
- render_accessibility_ = render_frame->GetRenderAccessibility();
}
PdfAccessibilityTree::~PdfAccessibilityTree() {
@@ -73,6 +70,11 @@ void PdfAccessibilityTree::SetAccessibilityPageInfo(
const PP_PrivateAccessibilityPageInfo& page_info,
const std::vector<PP_PrivateAccessibilityTextRunInfo>& text_runs,
const std::vector<PP_PrivateAccessibilityCharInfo>& chars) {
+ content::RenderAccessibility* render_accessibility =
+ render_frame_->GetRenderAccessibility();
+ if (!render_accessibility)
+ return;
+
uint32_t page_index = page_info.page_index;
CHECK_GE(page_index, 0U);
CHECK_LT(page_index, doc_info_.page_count);
@@ -119,6 +121,7 @@ void PdfAccessibilityTree::SetAccessibilityPageInfo(
text_run.font_size > heading_font_size_threshold) {
para_node->role = ui::AX_ROLE_HEADING;
para_node->AddIntAttribute(ui::AX_ATTR_HIERARCHICAL_LEVEL, 2);
+ para_node->AddStringAttribute(ui::AX_ATTR_HTML_TAG, "h2");
}
// This node is for the text inside the paragraph, it includes
@@ -171,7 +174,10 @@ void PdfAccessibilityTree::Finish() {
update.nodes.push_back(*node);
CHECK(tree_.Unserialize(update)) << update.ToString() << tree_.error();
- render_accessibility_->SetPdfTreeSource(this);
+ content::RenderAccessibility* render_accessibility =
+ render_frame_->GetRenderAccessibility();
+ if (render_accessibility)
+ render_accessibility->SetPdfTreeSource(this);
}
void PdfAccessibilityTree::ComputeParagraphAndHeadingThresholds(
@@ -245,8 +251,11 @@ gfx::RectF PdfAccessibilityTree::ToRectF(const PP_Rect& r) {
}
ui::AXNodeData* PdfAccessibilityTree::CreateNode(ui::AXRole role) {
+ content::RenderAccessibility* render_accessibility =
+ render_frame_->GetRenderAccessibility();
+
ui::AXNodeData* node = new ui::AXNodeData();
- node->id = render_accessibility_->GenerateAXID();
+ node->id = render_accessibility->GenerateAXID();
node->role = role;
node->state = 1 << ui::AX_STATE_ENABLED | 1 << ui::AX_STATE_READ_ONLY;
nodes_.push_back(base::WrapUnique(node));
@@ -254,7 +263,7 @@ ui::AXNodeData* PdfAccessibilityTree::CreateNode(ui::AXRole role) {
}
float PdfAccessibilityTree::GetDeviceScaleFactor() const {
- return render_view_->GetDeviceScaleFactor();
+ return render_frame_->GetRenderView()->GetDeviceScaleFactor();
}
//

Powered by Google App Engine
This is Rietveld 408576698