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

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: Address feedback Created 4 years, 6 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
« no previous file with comments | « components/pdf/renderer/pdf_accessibility_tree.h ('k') | content/public/renderer/render_frame_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 747b932eefffb701959cae880b44d7c3c0ac2304..2f058715e9484c3f63f6408ba7de12dce8e50168 100644
--- a/components/pdf/renderer/pdf_accessibility_tree.cc
+++ b/components/pdf/renderer/pdf_accessibility_tree.cc
@@ -44,10 +44,7 @@ gfx::RectF ToGfxRectF(const PP_FloatRect& r) {
PdfAccessibilityTree::PdfAccessibilityTree(
content::RenderView* render_view)
: render_view_(render_view),
- render_accessibility_(nullptr),
zoom_(1.0) {
- content::RenderFrame* render_frame = render_view->GetMainRenderFrame();
- render_accessibility_ = render_frame->GetRenderAccessibility();
}
PdfAccessibilityTree::~PdfAccessibilityTree() {
@@ -73,6 +70,12 @@ void PdfAccessibilityTree::SetAccessibilityPageInfo(
const PP_PrivateAccessibilityPageInfo& page_info,
const std::vector<PP_PrivateAccessibilityTextRunInfo>& text_runs,
const std::vector<PP_PrivateAccessibilityCharInfo>& chars) {
+ content::RenderFrame* render_frame = render_view_->GetMainRenderFrame();
nasko 2016/06/28 21:59:51 Are we guaranteed to have a main frame? We avoid m
raymes 2016/06/29 00:31:36 Good question and I don't know the answer for sure
dmazzoni 2016/06/30 22:35:14 In this case, GetMainFrame() would always work as
+ 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);
@@ -171,7 +174,11 @@ void PdfAccessibilityTree::Finish() {
update.nodes.push_back(*node);
CHECK(tree_.Unserialize(update)) << update.ToString() << tree_.error();
- render_accessibility_->SetPdfTreeSource(this);
+ content::RenderFrame* render_frame = render_view_->GetMainRenderFrame();
+ content::RenderAccessibility* render_accessibility =
+ render_frame->GetRenderAccessibility();
+ if (render_accessibility)
+ render_accessibility->SetPdfTreeSource(this);
}
void PdfAccessibilityTree::ComputeParagraphAndHeadingThresholds(
@@ -245,8 +252,12 @@ gfx::RectF PdfAccessibilityTree::ToRectF(const PP_Rect& r) {
}
ui::AXNodeData* PdfAccessibilityTree::CreateNode(ui::AXRole role) {
+ content::RenderFrame* render_frame = render_view_->GetMainRenderFrame();
+ 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));
« no previous file with comments | « components/pdf/renderer/pdf_accessibility_tree.h ('k') | content/public/renderer/render_frame_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698