Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java

Issue 2378773010: Expose registered histograms from FeedbackCollector (Closed)
Patch Set: ps Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.feedback; 5 package org.chromium.chrome.browser.feedback;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.graphics.Bitmap; 8 import android.graphics.Bitmap;
9 import android.os.Bundle; 9 import android.os.Bundle;
10 import android.os.SystemClock; 10 import android.os.SystemClock;
11 import android.text.TextUtils; 11 import android.text.TextUtils;
12 12
13 import org.chromium.base.ThreadUtils; 13 import org.chromium.base.ThreadUtils;
14 import org.chromium.base.VisibleForTesting; 14 import org.chromium.base.VisibleForTesting;
15 import org.chromium.base.metrics.StatisticsRecorderAndroid;
15 import org.chromium.blimp_public.BlimpClientContext; 16 import org.chromium.blimp_public.BlimpClientContext;
16 import org.chromium.chrome.browser.blimp.BlimpClientContextFactory; 17 import org.chromium.chrome.browser.blimp.BlimpClientContextFactory;
17 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; 18 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
18 import org.chromium.chrome.browser.profiles.Profile; 19 import org.chromium.chrome.browser.profiles.Profile;
19 import org.chromium.components.variations.VariationsAssociatedData; 20 import org.chromium.components.variations.VariationsAssociatedData;
20 21
21 import java.util.HashMap; 22 import java.util.HashMap;
22 import java.util.Map; 23 import java.util.Map;
23 24
24 import javax.annotation.Nullable; 25 import javax.annotation.Nullable;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 * An optional description for the feedback report. 66 * An optional description for the feedback report.
66 */ 67 */
67 private String mDescription; 68 private String mDescription;
68 69
69 /** 70 /**
70 * An optional screenshot for the feedback report. 71 * An optional screenshot for the feedback report.
71 */ 72 */
72 private Bitmap mScreenshot; 73 private Bitmap mScreenshot;
73 74
74 /** 75 /**
76 * All the registered histograms as JSON text.
77 */
78 private String mHistograms;
79
80 /**
75 * A flag indicating whether gathering connection data has finished. 81 * A flag indicating whether gathering connection data has finished.
76 */ 82 */
77 private boolean mConnectivityTaskFinished; 83 private boolean mConnectivityTaskFinished;
78 84
79 /** 85 /**
80 * A flag indicating whether taking a screenshot has finished. 86 * A flag indicating whether taking a screenshot has finished.
81 */ 87 */
82 private boolean mScreenshotTaskFinished; 88 private boolean mScreenshotTaskFinished;
83 89
84 /** 90 /**
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 mCallback = callback; 127 mCallback = callback;
122 mCollectionStartTime = SystemClock.elapsedRealtime(); 128 mCollectionStartTime = SystemClock.elapsedRealtime();
123 init(activity); 129 init(activity);
124 } 130 }
125 131
126 @VisibleForTesting 132 @VisibleForTesting
127 void init(Activity activity) { 133 void init(Activity activity) {
128 postTimeoutTask(); 134 postTimeoutTask();
129 mConnectivityTask = ConnectivityTask.create(mProfile, CONNECTIVITY_CHECK _TIMEOUT_MS, this); 135 mConnectivityTask = ConnectivityTask.create(mProfile, CONNECTIVITY_CHECK _TIMEOUT_MS, this);
130 ScreenshotTask.create(activity, this); 136 ScreenshotTask.create(activity, this);
137 if (!mProfile.isOffTheRecord()) {
138 mHistograms = StatisticsRecorderAndroid.toJson();
139 }
131 } 140 }
132 141
133 /** 142 /**
134 * {@link ConnectivityTask.ConnectivityResult} implementation. 143 * {@link ConnectivityTask.ConnectivityResult} implementation.
135 */ 144 */
136 @Override 145 @Override
137 public void onResult(ConnectivityTask.FeedbackData feedbackData) { 146 public void onResult(ConnectivityTask.FeedbackData feedbackData) {
138 ThreadUtils.assertOnUiThread(); 147 ThreadUtils.assertOnUiThread();
139 mConnectivityTaskFinished = true; 148 mConnectivityTaskFinished = true;
140 Map<String, String> connectivityMap = feedbackData.toMap(); 149 Map<String, String> connectivityMap = feedbackData.toMap();
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 234
226 /** 235 /**
227 * @return the screenshot to use for the feedback report. 236 * @return the screenshot to use for the feedback report.
228 */ 237 */
229 @VisibleForTesting 238 @VisibleForTesting
230 public Bitmap getScreenshot() { 239 public Bitmap getScreenshot() {
231 ThreadUtils.assertOnUiThread(); 240 ThreadUtils.assertOnUiThread();
232 return mScreenshot; 241 return mScreenshot;
233 } 242 }
234 243
244 public String getHistograms() {
nyquist 2016/10/03 20:55:38 Nit: Add a comment as to what type of data this is
tbansal1 2016/10/04 03:34:11 I added a comment. Let me know if it is insufficie
245 return mHistograms;
246 }
247
235 /** 248 /**
236 * @return the collected data as a {@link Bundle}. 249 * @return the collected data as a {@link Bundle}.
237 */ 250 */
238 @VisibleForTesting 251 @VisibleForTesting
239 public Bundle getBundle() { 252 public Bundle getBundle() {
240 ThreadUtils.assertOnUiThread(); 253 ThreadUtils.assertOnUiThread();
241 addUrl(); 254 addUrl();
242 addConnectivityData(); 255 addConnectivityData();
243 addDataReductionProxyData(); 256 addDataReductionProxyData();
244 addVariationsData(); 257 addVariationsData();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 } 292 }
280 293
281 private Bundle asBundle() { 294 private Bundle asBundle() {
282 Bundle bundle = new Bundle(); 295 Bundle bundle = new Bundle();
283 for (Map.Entry<String, String> entry : mData.entrySet()) { 296 for (Map.Entry<String, String> entry : mData.entrySet()) {
284 bundle.putString(entry.getKey(), entry.getValue()); 297 bundle.putString(entry.getKey(), entry.getValue());
285 } 298 }
286 return bundle; 299 return bundle;
287 } 300 }
288 } 301 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698