| Index: chrome/android/java/src/org/chromium/chrome/browser/webshare/ShareServiceImpl.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webshare/ShareServiceImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/webshare/ShareServiceImpl.java
|
| index df32f4f7592f4a3ba421fcab731ab7044ef528fe..f49b85010197454f3967602b4b0e39ad6b629b2c 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/webshare/ShareServiceImpl.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/webshare/ShareServiceImpl.java
|
| @@ -8,6 +8,7 @@ import android.app.Activity;
|
| import android.content.ComponentName;
|
| import android.support.annotation.Nullable;
|
|
|
| +import org.chromium.base.metrics.RecordHistogram;
|
| import org.chromium.chrome.browser.share.ShareHelper;
|
| import org.chromium.content.browser.ContentViewCore;
|
| import org.chromium.content_public.browser.WebContents;
|
| @@ -23,6 +24,20 @@ import org.chromium.ui.base.WindowAndroid;
|
| public class ShareServiceImpl implements ShareService {
|
| private final Activity mActivity;
|
|
|
| + // These numbers are written to histograms. Keep in sync with WebShareMethod enum in
|
| + // histograms.xml, and don't reuse or renumber entries (except for the _COUNT entry).
|
| + private static final int WEBSHARE_METHOD_SHARE = 0;
|
| + // Count is technically 1, but recordEnumeratedHistogram requires a boundary of at least 2
|
| + // (https://crbug.com/645032).
|
| + private static final int WEBSHARE_METHOD_COUNT = 2;
|
| +
|
| + // These numbers are written to histograms. Keep in sync with WebShareOutcome enum in
|
| + // histograms.xml, and don't reuse or renumber entries (except for the _COUNT entry).
|
| + private static final int WEBSHARE_OUTCOME_SUCCESS = 0;
|
| + private static final int WEBSHARE_OUTCOME_UNKNOWN_FAILURE = 1;
|
| + private static final int WEBSHARE_OUTCOME_CANCELED = 2;
|
| + private static final int WEBSHARE_OUTCOME_COUNT = 3;
|
| +
|
| public ShareServiceImpl(@Nullable WebContents webContents) {
|
| mActivity = activityFromWebContents(webContents);
|
| }
|
| @@ -35,17 +50,26 @@ public class ShareServiceImpl implements ShareService {
|
|
|
| @Override
|
| public void share(String title, String text, Url url, final ShareResponse callback) {
|
| + RecordHistogram.recordEnumeratedHistogram("WebShare.ApiCount", WEBSHARE_METHOD_SHARE,
|
| + WEBSHARE_METHOD_COUNT);
|
| +
|
| if (mActivity == null) {
|
| + RecordHistogram.recordEnumeratedHistogram("WebShare.ShareOutcome",
|
| + WEBSHARE_OUTCOME_UNKNOWN_FAILURE, WEBSHARE_OUTCOME_COUNT);
|
| callback.call("Share failed");
|
| return;
|
| }
|
|
|
| ShareHelper.TargetChosenCallback innerCallback = new ShareHelper.TargetChosenCallback() {
|
| public void onTargetChosen(ComponentName chosenComponent) {
|
| + RecordHistogram.recordEnumeratedHistogram("WebShare.ShareOutcome",
|
| + WEBSHARE_OUTCOME_SUCCESS, WEBSHARE_OUTCOME_COUNT);
|
| callback.call(null);
|
| }
|
|
|
| public void onCancel() {
|
| + RecordHistogram.recordEnumeratedHistogram("WebShare.ShareOutcome",
|
| + WEBSHARE_OUTCOME_CANCELED, WEBSHARE_OUTCOME_COUNT);
|
| callback.call("Share canceled");
|
| }
|
| };
|
|
|