Commit b4c5fb17 authored by Hui Yingst's avatar Hui Yingst Committed by Commit Bot

Record metrics for zoom in and zoom out actions inside PDF viewer.

Bug: 1039520
Change-Id: I34c324b776b0248a907f45d1a74b5d72d3cb59cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2203151
Commit-Queue: Hui Yingst <nigi@chromium.org>
Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Reviewed-by: default avatarHenrique Nakashima <hnakashima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#769961}
parent 2965b5b8
......@@ -35,6 +35,18 @@ export class PDFMetrics {
PDFMetrics.UserAction.TWO_UP_VIEW_DISABLE);
}
/**
* Records zoom in and zoom out actions.
*
* @param {boolean} isZoomIn True when the action is zooming in, false when
* the action is zooming out.
*/
static recordZoomAction(isZoomIn) {
PDFMetrics.record(
isZoomIn ? PDFMetrics.UserAction.ZOOM_IN :
PDFMetrics.UserAction.ZOOM_OUT);
}
/**
* Records the given action to chrome.metricsPrivate.
*
......@@ -169,7 +181,15 @@ PDFMetrics.UserAction = {
TWO_UP_VIEW_DISABLE_FIRST: 37,
TWO_UP_VIEW_DISABLE: 38,
NUMBER_OF_ACTIONS: 39,
/** Recorded when zoom in button is clicked. */
ZOOM_IN_FIRST: 39,
ZOOM_IN: 40,
/** Recorded when zoom out button is clicked. */
ZOOM_OUT_FIRST: 41,
ZOOM_OUT: 42,
NUMBER_OF_ACTIONS: 43,
};
// Map from UserAction to the 'FIRST' action. These metrics are recorded
......@@ -252,4 +272,12 @@ PDFMetrics.firstMap_ = new Map([
PDFMetrics.UserAction.TWO_UP_VIEW_DISABLE,
PDFMetrics.UserAction.TWO_UP_VIEW_DISABLE_FIRST,
],
[
PDFMetrics.UserAction.ZOOM_IN,
PDFMetrics.UserAction.ZOOM_IN_FIRST,
],
[
PDFMetrics.UserAction.ZOOM_OUT,
PDFMetrics.UserAction.ZOOM_OUT_FIRST,
],
]);
......@@ -339,10 +339,14 @@ export class PDFViewer {
'two-up-view-changed',
e => this.twoUpViewChanged_(
/** @type {!CustomEvent<!TwoUpViewAction>} */ (e)));
this.zoomToolbar_.addEventListener(
'zoom-in', () => this.viewport_.zoomIn());
this.zoomToolbar_.addEventListener(
'zoom-out', () => this.viewport_.zoomOut());
this.zoomToolbar_.addEventListener('zoom-in', () => {
this.viewport_.zoomIn();
PDFMetrics.recordZoomAction(/*isZoomIn=*/ true);
});
this.zoomToolbar_.addEventListener('zoom-out', () => {
this.viewport_.zoomOut();
PDFMetrics.recordZoomAction(/*isZoomIn=*/ false);
});
/** @private {!GestureDetector} */
this.gestureDetector_ = new GestureDetector(assert($('content')));
......
......@@ -105,6 +105,29 @@ chrome.test.runTests(function() {
chrome.test.succeed();
},
function testMetricsZoomAction() {
PDFMetrics.resetForTesting();
chrome.metricsPrivate = new MockMetricsPrivate();
PDFMetrics.record(PDFMetrics.UserAction.DOCUMENT_OPENED);
PDFMetrics.recordZoomAction(/*isZoomIn=*/ true);
PDFMetrics.recordZoomAction(/*isZoomIn=*/ false);
PDFMetrics.recordZoomAction(/*isZoomIn=*/ true);
PDFMetrics.recordZoomAction(/*isZoomIn=*/ false);
PDFMetrics.recordZoomAction(/*isZoomIn=*/ true);
chrome.test.assertEq(
{
[PDFMetrics.UserAction.DOCUMENT_OPENED]: 1,
[PDFMetrics.UserAction.ZOOM_IN_FIRST]: 1,
[PDFMetrics.UserAction.ZOOM_IN]: 3,
[PDFMetrics.UserAction.ZOOM_OUT_FIRST]: 1,
[PDFMetrics.UserAction.ZOOM_OUT]: 2
},
chrome.metricsPrivate.actionCounter);
chrome.test.succeed();
},
function testMetricsBookmarks() {
PDFMetrics.resetForTesting();
......
......@@ -9086,6 +9086,10 @@ histogram as enum -->
<int value="36" label="TwoUpViewEnable"/>
<int value="37" label="TwoUpViewDisableFirst"/>
<int value="38" label="TwoUpViewDisable"/>
<int value="39" label="ZoomInFirst"/>
<int value="40" label="ZoomIn"/>
<int value="41" label="ZoomOutFirst"/>
<int value="42" label="ZoomOut"/>
</enum>
<enum name="ChromePDFViewerAnnotationType">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment