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"); |
} |
}; |