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(); |
} |
// |