[go: nahoru, domu]

Add node IDs to PaintCanvas/GraphicsContext for accessible PDFs.

In order for Chrome to output tagged PDFs, it needs content painted
by Blink to be tagged with its associated DOM node. Text is already
marked with its DOMNodeID. This patch extends that to tag
arbitrary drawing in GraphicsContext.

For background, see this design doc:
https://docs.google.com/document/d/1ku6QNtAHEqVnRGqFzpmlMe1fowkjCX9miHj8Kx1cFlk/edit#

Bug: 607777
Change-Id: Iec5cab6aa22c79ca3ce4db681164a97541264506
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1927975
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#747814}
diff --git a/cc/paint/paint_canvas.h b/cc/paint/paint_canvas.h
index ea019b0f..8a0883b7 100644
--- a/cc/paint/paint_canvas.h
+++ b/cc/paint/paint_canvas.h
@@ -205,6 +205,9 @@
   // Subclasses can override to handle custom data.
   virtual void recordCustomData(uint32_t id) {}
 
+  // Used for marked content in PDF files.
+  virtual void setNodeId(int) = 0;
+
  private:
   printing::MetafileSkia* metafile_ = nullptr;
   paint_preview::PaintPreviewTracker* tracker_ = nullptr;