[PDF Ink Signatures] Add stroke highlighter color metric
Add a metric to track the brush colors of highlighter strokes. Bug: 380433757 Change-Id: Ica404ba842c66b85ff3789efcce104d6744065ed Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6055730 Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com> Reviewed-by: Alan Screen <awscreen@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Andy Phan <andyphan@chromium.org> Cr-Commit-Position: refs/heads/main@{#1391317}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
fe27f54674
commit
de22bc5538
pdf
tools/metrics/histograms/metadata/pdf
@ -61,6 +61,27 @@ constexpr auto kPenColors =
|
||||
{SkColorSetRGB(0x88, 0x59, 0x45), StrokeMetricPenColor::kTan3},
|
||||
});
|
||||
|
||||
constexpr auto kHighlighterColors =
|
||||
base::MakeFixedFlatMap<SkColor, StrokeMetricHighlighterColor>({
|
||||
{SkColorSetRGB(0xF2, 0x8B, 0x82),
|
||||
StrokeMetricHighlighterColor::kLightRed},
|
||||
{SkColorSetRGB(0xFD, 0xD6, 0x63),
|
||||
StrokeMetricHighlighterColor::kLightYellow},
|
||||
{SkColorSetRGB(0x34, 0xA8, 0x53),
|
||||
StrokeMetricHighlighterColor::kLightGreen},
|
||||
{SkColorSetRGB(0x42, 0x85, 0xF4),
|
||||
StrokeMetricHighlighterColor::kLightBlue},
|
||||
{SkColorSetRGB(0xFF, 0xAE, 0x80),
|
||||
StrokeMetricHighlighterColor::kLightOrange},
|
||||
{SkColorSetRGB(0xD9, 0x30, 0x25), StrokeMetricHighlighterColor::kRed},
|
||||
{SkColorSetRGB(0xDD, 0xF3, 0x00),
|
||||
StrokeMetricHighlighterColor::kYellow},
|
||||
{SkColorSetRGB(0x25, 0xE3, 0x87), StrokeMetricHighlighterColor::kGreen},
|
||||
{SkColorSetRGB(0x53, 0x79, 0xFF), StrokeMetricHighlighterColor::kBlue},
|
||||
{SkColorSetRGB(0xFF, 0x63, 0x0C),
|
||||
StrokeMetricHighlighterColor::kOrange},
|
||||
});
|
||||
|
||||
void ReportStrokeTypeAndSize(StrokeMetricBrushType type,
|
||||
StrokeMetricBrushSize size) {
|
||||
base::UmaHistogramEnumeration("PDF.Ink2StrokeBrushType", type);
|
||||
@ -97,6 +118,11 @@ void ReportDrawStroke(PdfInkBrush::Type type, const ink::Brush& brush) {
|
||||
auto color_iter = kPenColors.find(sk_color);
|
||||
CHECK(color_iter != kPenColors.end());
|
||||
base::UmaHistogramEnumeration("PDF.Ink2StrokePenColor", color_iter->second);
|
||||
} else {
|
||||
auto color_iter = kHighlighterColors.find(sk_color);
|
||||
CHECK(color_iter != kHighlighterColors.end());
|
||||
base::UmaHistogramEnumeration("PDF.Ink2StrokeHighlighterColor",
|
||||
color_iter->second);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,6 +38,25 @@ enum class StrokeMetricBrushType {
|
||||
};
|
||||
// LINT.ThenChange(//tools/metrics/histograms/metadata/pdf/enums.xml:PDFInk2StrokeBrushType)
|
||||
|
||||
// These values are persisted to logs. Entries should not be renumbered and
|
||||
// numeric values should never be reused.
|
||||
//
|
||||
// LINT.IfChange(PDFInk2StrokeHighlighterColor)
|
||||
enum class StrokeMetricHighlighterColor {
|
||||
kLightRed = 0,
|
||||
kLightYellow = 1,
|
||||
kLightGreen = 2,
|
||||
kLightBlue = 3,
|
||||
kLightOrange = 4,
|
||||
kRed = 5,
|
||||
kYellow = 6,
|
||||
kGreen = 7,
|
||||
kBlue = 8,
|
||||
kOrange = 9,
|
||||
kMaxValue = 9,
|
||||
};
|
||||
// LINT.ThenChange(//tools/metrics/histograms/metadata/pdf/enums.xml:PDFInk2StrokeHighlighterColor)
|
||||
|
||||
// These values are persisted to logs. Entries should not be renumbered and
|
||||
// numeric values should never be reused.
|
||||
//
|
||||
|
@ -2060,6 +2060,8 @@ TEST_F(PdfInkModuleGetVisibleStrokesTest, MultiplePageStrokes) {
|
||||
class PdfInkModuleMetricsTest : public PdfInkModuleUndoRedoTest {
|
||||
protected:
|
||||
static constexpr char kPenColorMetric[] = "PDF.Ink2StrokePenColor";
|
||||
static constexpr char kHighlighterColorMetric[] =
|
||||
"PDF.Ink2StrokeHighlighterColor";
|
||||
static constexpr char kPenSizeMetric[] = "PDF.Ink2StrokePenSize";
|
||||
static constexpr char kHighlighterSizeMetric[] =
|
||||
"PDF.Ink2StrokeHighlighterSize";
|
||||
@ -2124,6 +2126,35 @@ TEST_F(PdfInkModuleMetricsTest, StrokeBrushColorPen) {
|
||||
|
||||
histograms.ExpectBucketCount(kPenColorMetric, StrokeMetricPenColor::kTan3, 1);
|
||||
histograms.ExpectTotalCount(kPenColorMetric, 3);
|
||||
histograms.ExpectTotalCount(kHighlighterColorMetric, 0);
|
||||
}
|
||||
|
||||
TEST_F(PdfInkModuleMetricsTest, StrokeBrushColorHighlighter) {
|
||||
EnableAnnotationMode();
|
||||
InitializeSimpleSinglePageBasicLayout();
|
||||
base::HistogramTester histograms;
|
||||
|
||||
// Draw a stroke with "Light Red" color.
|
||||
TestAnnotationBrushMessageParams params = {/*color_r=*/0xF2, /*color_g=*/0x8B,
|
||||
/*color_b=*/0x82};
|
||||
SelectBrushTool(PdfInkBrush::Type::kHighlighter, 6.0f, params);
|
||||
ApplyStrokeWithMouseAtMouseDownPoint();
|
||||
|
||||
histograms.ExpectBucketCount(kHighlighterColorMetric,
|
||||
StrokeMetricHighlighterColor::kLightRed, 1);
|
||||
histograms.ExpectTotalCount(kHighlighterColorMetric, 1);
|
||||
|
||||
// Draw a stroke with "Orange" color.
|
||||
params.color_r = 0xFF;
|
||||
params.color_g = 0x63;
|
||||
params.color_b = 0x0C;
|
||||
SelectBrushTool(PdfInkBrush::Type::kHighlighter, 6.0f, params);
|
||||
ApplyStrokeWithMouseAtMouseDownPoint();
|
||||
|
||||
histograms.ExpectBucketCount(kHighlighterColorMetric,
|
||||
StrokeMetricHighlighterColor::kOrange, 1);
|
||||
histograms.ExpectTotalCount(kHighlighterColorMetric, 2);
|
||||
histograms.ExpectTotalCount(kPenColorMetric, 0);
|
||||
}
|
||||
|
||||
TEST_F(PdfInkModuleMetricsTest, StrokeBrushSizePen) {
|
||||
|
@ -166,6 +166,23 @@ chromium-metrics-reviews@google.com.
|
||||
|
||||
<!-- LINT.ThenChange(//pdf/pdf_ink_metrics_handler.h:PDFInk2StrokeBrushType) -->
|
||||
|
||||
<!-- LINT.IfChange(PDFInk2StrokeHighlighterColor) -->
|
||||
|
||||
<enum name="PDFInk2StrokeHighlighterColor">
|
||||
<int value="0" label="LightRed"/>
|
||||
<int value="1" label="LightYellow"/>
|
||||
<int value="2" label="LightGreen"/>
|
||||
<int value="3" label="LightBlue"/>
|
||||
<int value="4" label="LightOrange"/>
|
||||
<int value="5" label="Red"/>
|
||||
<int value="6" label="Yellow"/>
|
||||
<int value="7" label="Green"/>
|
||||
<int value="8" label="Blue"/>
|
||||
<int value="9" label="Orange"/>
|
||||
</enum>
|
||||
|
||||
<!-- LINT.ThenChange(//pdf/pdf_ink_metrics_handler.h:PDFInk2StrokeHighlighterColor) -->
|
||||
|
||||
<!-- LINT.IfChange(PDFInk2StrokePenColor) -->
|
||||
|
||||
<enum name="PDFInk2StrokePenColor">
|
||||
|
@ -91,6 +91,17 @@ chromium-metrics-reviews@google.com.
|
||||
</summary>
|
||||
</histogram>
|
||||
|
||||
<histogram name="PDF.Ink2StrokeHighlighterColor"
|
||||
enum="PDFInk2StrokeHighlighterColor" expires_after="2025-12-01">
|
||||
<owner>andyphan@chromium.org</owner>
|
||||
<owner>thestig@chromium.org</owner>
|
||||
<summary>
|
||||
Tracks the brush color used for an Ink2 Highlighter stroke modification in
|
||||
the PDF viewer. This is only recorded when drawing actions are performed by
|
||||
the user, but not if they occur as part of undo or redo operations.
|
||||
</summary>
|
||||
</histogram>
|
||||
|
||||
<histogram name="PDF.Ink2StrokePenColor" enum="PDFInk2StrokePenColor"
|
||||
expires_after="2025-12-01">
|
||||
<owner>andyphan@chromium.org</owner>
|
||||
|
Reference in New Issue
Block a user