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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/crash/ChromeMinidumpUploaderDelegate.java

Issue 2751333004: [Crash Reporting] Only upload Chrome crash reports over unmetered networks. (Closed)
Patch Set: Rebase Created 3 years, 8 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 package org.chromium.chrome.browser.crash; 4 package org.chromium.chrome.browser.crash;
5 5
6 import android.annotation.TargetApi; 6 import android.annotation.TargetApi;
7 import android.content.Context; 7 import android.content.Context;
8 import android.net.ConnectivityManager; 8 import android.net.ConnectivityManager;
9 import android.net.NetworkInfo;
10 import android.os.Build; 9 import android.os.Build;
11 import android.os.PersistableBundle; 10 import android.os.PersistableBundle;
12 11
13 import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager ; 12 import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager ;
14 import org.chromium.components.minidump_uploader.MinidumpUploaderDelegate; 13 import org.chromium.components.minidump_uploader.MinidumpUploaderDelegate;
15 import org.chromium.components.minidump_uploader.util.CrashReportingPermissionMa nager; 14 import org.chromium.components.minidump_uploader.util.CrashReportingPermissionMa nager;
15 import org.chromium.components.minidump_uploader.util.NetworkPermissionUtil;
16 16
17 import java.io.File; 17 import java.io.File;
18 18
19 /** 19 /**
20 * Chrome-specific implementations for minidump uploading logic. 20 * Chrome-specific implementations for minidump uploading logic.
21 */ 21 */
22 @TargetApi(Build.VERSION_CODES.M) 22 @TargetApi(Build.VERSION_CODES.M)
23 public class ChromeMinidumpUploaderDelegate implements MinidumpUploaderDelegate { 23 public class ChromeMinidumpUploaderDelegate implements MinidumpUploaderDelegate {
24 // PersistableBundle keys: 24 // PersistableBundle keys:
25 static final String IS_CLIENT_IN_METRICS_SAMPLE = "isClientInMetricsSample"; 25 static final String IS_CLIENT_IN_METRICS_SAMPLE = "isClientInMetricsSample";
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 @Override 61 @Override
62 public CrashReportingPermissionManager createCrashReportingPermissionManager () { 62 public CrashReportingPermissionManager createCrashReportingPermissionManager () {
63 return new CrashReportingPermissionManager() { 63 return new CrashReportingPermissionManager() {
64 @Override 64 @Override
65 public boolean isClientInMetricsSample() { 65 public boolean isClientInMetricsSample() {
66 return mPermissions.getBoolean(IS_CLIENT_IN_METRICS_SAMPLE, true ); 66 return mPermissions.getBoolean(IS_CLIENT_IN_METRICS_SAMPLE, true );
67 } 67 }
68 68
69 @Override 69 @Override
70 public boolean isNetworkAvailableForCrashUploads() { 70 public boolean isNetworkAvailableForCrashUploads() {
71 // TODO(isherman): This code should really be shared with the An droid Webview 71 return NetworkPermissionUtil.isNetworkUnmetered(mConnectivityMan ager);
72 // implementation, which tests whether the connection is metered , rather than
73 // testing the type of the connection. Implement this change in M59 -- for M58, it's
74 // more important to maintain consistency with the previous impl ementation. When
75 // changing this, note that forced uploads do *not* require unme tered connections.
76 NetworkInfo networkInfo = mConnectivityManager.getActiveNetworkI nfo();
77 if (networkInfo == null || !networkInfo.isConnected()) return fa lse;
78 return networkInfo.getType() == ConnectivityManager.TYPE_WIFI
79 || networkInfo.getType() == ConnectivityManager.TYPE_ETH ERNET;
80 } 72 }
81 73
82 @Override 74 @Override
83 public boolean isUsageAndCrashReportingPermittedByUser() { 75 public boolean isUsageAndCrashReportingPermittedByUser() {
84 return PrivacyPreferencesManager.getInstance() 76 return PrivacyPreferencesManager.getInstance()
85 .isUsageAndCrashReportingPermittedByUser(); 77 .isUsageAndCrashReportingPermittedByUser();
86 } 78 }
87 79
88 @Override 80 @Override
89 public boolean isUploadEnabledForTests() { 81 public boolean isUploadEnabledForTests() {
(...skipping 10 matching lines...) Expand all
100 @Override 92 @Override
101 public void recordUploadSuccess(File minidump) { 93 public void recordUploadSuccess(File minidump) {
102 MinidumpUploadService.incrementCrashSuccessUploadCount(minidump.getAbsol utePath()); 94 MinidumpUploadService.incrementCrashSuccessUploadCount(minidump.getAbsol utePath());
103 } 95 }
104 96
105 @Override 97 @Override
106 public void recordUploadFailure(File minidump) { 98 public void recordUploadFailure(File minidump) {
107 MinidumpUploadService.incrementCrashFailureUploadCount(minidump.getAbsol utePath()); 99 MinidumpUploadService.incrementCrashFailureUploadCount(minidump.getAbsol utePath());
108 } 100 }
109 } 101 }
OLDNEW
« no previous file with comments | « chrome/android/BUILD.gn ('k') | chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadService.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698