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 { ...@@ -35,6 +35,18 @@ export class PDFMetrics {
PDFMetrics.UserAction.TWO_UP_VIEW_DISABLE); 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. * Records the given action to chrome.metricsPrivate.
* *
...@@ -169,7 +181,15 @@ PDFMetrics.UserAction = { ...@@ -169,7 +181,15 @@ PDFMetrics.UserAction = {
TWO_UP_VIEW_DISABLE_FIRST: 37, TWO_UP_VIEW_DISABLE_FIRST: 37,
TWO_UP_VIEW_DISABLE: 38, 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 // Map from UserAction to the 'FIRST' action. These metrics are recorded
...@@ -252,4 +272,12 @@ PDFMetrics.firstMap_ = new Map([ ...@@ -252,4 +272,12 @@ PDFMetrics.firstMap_ = new Map([
PDFMetrics.UserAction.TWO_UP_VIEW_DISABLE, PDFMetrics.UserAction.TWO_UP_VIEW_DISABLE,
PDFMetrics.UserAction.TWO_UP_VIEW_DISABLE_FIRST, 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 { ...@@ -339,10 +339,14 @@ export class PDFViewer {
'two-up-view-changed', 'two-up-view-changed',
e => this.twoUpViewChanged_( e => this.twoUpViewChanged_(
/** @type {!CustomEvent<!TwoUpViewAction>} */ (e))); /** @type {!CustomEvent<!TwoUpViewAction>} */ (e)));
this.zoomToolbar_.addEventListener( this.zoomToolbar_.addEventListener('zoom-in', () => {
'zoom-in', () => this.viewport_.zoomIn()); this.viewport_.zoomIn();
this.zoomToolbar_.addEventListener( PDFMetrics.recordZoomAction(/*isZoomIn=*/ true);
'zoom-out', () => this.viewport_.zoomOut()); });
this.zoomToolbar_.addEventListener('zoom-out', () => {
this.viewport_.zoomOut();
PDFMetrics.recordZoomAction(/*isZoomIn=*/ false);
});
/** @private {!GestureDetector} */ /** @private {!GestureDetector} */
this.gestureDetector_ = new GestureDetector(assert($('content'))); this.gestureDetector_ = new GestureDetector(assert($('content')));
......
...@@ -105,6 +105,29 @@ chrome.test.runTests(function() { ...@@ -105,6 +105,29 @@ chrome.test.runTests(function() {
chrome.test.succeed(); 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() { function testMetricsBookmarks() {
PDFMetrics.resetForTesting(); PDFMetrics.resetForTesting();
......
...@@ -9086,6 +9086,10 @@ histogram as enum --> ...@@ -9086,6 +9086,10 @@ histogram as enum -->
<int value="36" label="TwoUpViewEnable"/> <int value="36" label="TwoUpViewEnable"/>
<int value="37" label="TwoUpViewDisableFirst"/> <int value="37" label="TwoUpViewDisableFirst"/>
<int value="38" label="TwoUpViewDisable"/> <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>
<enum name="ChromePDFViewerAnnotationType"> <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