[unseasoned-pdf] Introduce PdfAccessibilityDataHandler
Introduce an interface class named PdfAccessibilityDataHandler. The interface will be implemented by PdfAccessibilityTree. In case of unseasoned-pdf-viewer, PdfViewWebPlugin will hold the PdfAccessibilityTree class in form of its base class PdfAccessibilityDataHandler. Bug: 1144444 Change-Id: Iad296eb1d65be43576fcbf0cfac29073760a54b7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3081306 Commit-Queue: Ankit Kumar 🌪️ <ankk@microsoft.com> Reviewed-by: Daniel Hosseinian <dhoss@chromium.org> Cr-Commit-Position: refs/heads/master@{#909940}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
bd48805637
commit
9a35b308d2
@ -8,6 +8,7 @@ include_rules = [
|
||||
"+pdf/buildflags.h",
|
||||
"+pdf/mojom/pdf.mojom.h",
|
||||
"+pdf/pdf_accessibility_action_handler.h",
|
||||
"+pdf/pdf_accessibility_data_handler.h",
|
||||
"+pdf/pdf_features.h",
|
||||
"+pdf/pdf_view_web_plugin.h",
|
||||
"+ppapi",
|
||||
|
@ -11,6 +11,7 @@
|
||||
|
||||
#include "content/public/renderer/plugin_ax_tree_source.h"
|
||||
#include "content/public/renderer/render_frame_observer.h"
|
||||
#include "pdf/pdf_accessibility_data_handler.h"
|
||||
#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||
#include "ui/accessibility/ax_node.h"
|
||||
#include "ui/accessibility/ax_tree.h"
|
||||
@ -42,7 +43,8 @@ class Transform;
|
||||
namespace pdf {
|
||||
|
||||
class PdfAccessibilityTree : public content::PluginAXTreeSource,
|
||||
public content::RenderFrameObserver {
|
||||
public content::RenderFrameObserver,
|
||||
public chrome_pdf::PdfAccessibilityDataHandler {
|
||||
public:
|
||||
PdfAccessibilityTree(
|
||||
content::RenderFrame* render_frame,
|
||||
@ -64,15 +66,17 @@ class PdfAccessibilityTree : public content::PluginAXTreeSource,
|
||||
uint32_t annotation_index;
|
||||
};
|
||||
|
||||
// chrome_pdf::PdfAccessibilityDataHandler:
|
||||
void SetAccessibilityViewportInfo(
|
||||
const chrome_pdf::AccessibilityViewportInfo& viewport_info);
|
||||
const chrome_pdf::AccessibilityViewportInfo& viewport_info) override;
|
||||
void SetAccessibilityDocInfo(
|
||||
const chrome_pdf::AccessibilityDocInfo& doc_info);
|
||||
const chrome_pdf::AccessibilityDocInfo& doc_info) override;
|
||||
void SetAccessibilityPageInfo(
|
||||
const chrome_pdf::AccessibilityPageInfo& page_info,
|
||||
const std::vector<chrome_pdf::AccessibilityTextRunInfo>& text_runs,
|
||||
const std::vector<chrome_pdf::AccessibilityCharInfo>& chars,
|
||||
const chrome_pdf::AccessibilityPageObjects& page_objects);
|
||||
const chrome_pdf::AccessibilityPageObjects& page_objects) override;
|
||||
|
||||
void HandleAction(const chrome_pdf::AccessibilityActionData& action_data);
|
||||
absl::optional<AnnotationInfo> GetPdfAnnotationInfoFromAXNode(
|
||||
int32_t ax_node_id) const;
|
||||
|
@ -254,6 +254,7 @@ if (enable_pdf) {
|
||||
"accessibility_structs.cc",
|
||||
"accessibility_structs.h",
|
||||
"pdf_accessibility_action_handler.h",
|
||||
"pdf_accessibility_data_handler.h",
|
||||
]
|
||||
|
||||
configs += [ ":strict" ]
|
||||
|
36
pdf/pdf_accessibility_data_handler.h
Normal file
36
pdf/pdf_accessibility_data_handler.h
Normal file
@ -0,0 +1,36 @@
|
||||
// Copyright 2021 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef PDF_PDF_ACCESSIBILITY_DATA_HANDLER_H_
|
||||
#define PDF_PDF_ACCESSIBILITY_DATA_HANDLER_H_
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace chrome_pdf {
|
||||
|
||||
struct AccessibilityCharInfo;
|
||||
struct AccessibilityDocInfo;
|
||||
struct AccessibilityPageInfo;
|
||||
struct AccessibilityPageObjects;
|
||||
struct AccessibilityTextRunInfo;
|
||||
struct AccessibilityViewportInfo;
|
||||
|
||||
class PdfAccessibilityDataHandler {
|
||||
public:
|
||||
virtual ~PdfAccessibilityDataHandler() = default;
|
||||
|
||||
virtual void SetAccessibilityViewportInfo(
|
||||
const AccessibilityViewportInfo& viewport_info) = 0;
|
||||
virtual void SetAccessibilityDocInfo(
|
||||
const AccessibilityDocInfo& doc_info) = 0;
|
||||
virtual void SetAccessibilityPageInfo(
|
||||
const AccessibilityPageInfo& page_info,
|
||||
const std::vector<AccessibilityTextRunInfo>& text_runs,
|
||||
const std::vector<AccessibilityCharInfo>& chars,
|
||||
const AccessibilityPageObjects& page_objects) = 0;
|
||||
};
|
||||
|
||||
} // namespace chrome_pdf
|
||||
|
||||
#endif // PDF_PDF_ACCESSIBILITY_DATA_HANDLER_H_
|
Reference in New Issue
Block a user