Merge "Instrument captive portal login activity" into oc-dr1-dev

This commit is contained in:
Hugo Benichi
2017-06-09 23:17:22 +00:00
committed by Android (Google) Code Review
2 changed files with 25 additions and 1 deletions

View File

@@ -46,6 +46,9 @@ import android.webkit.WebViewClient;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import java.io.IOException; import java.io.IOException;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.MalformedURLException; import java.net.MalformedURLException;
@@ -62,7 +65,14 @@ public class CaptivePortalLoginActivity extends Activity {
private static final int SOCKET_TIMEOUT_MS = 10000; private static final int SOCKET_TIMEOUT_MS = 10000;
private enum Result { DISMISSED, UNWANTED, WANTED_AS_IS }; private enum Result {
DISMISSED(MetricsEvent.ACTION_CAPTIVE_PORTAL_LOGIN_RESULT_DISMISSED),
UNWANTED(MetricsEvent.ACTION_CAPTIVE_PORTAL_LOGIN_RESULT_UNWANTED),
WANTED_AS_IS(MetricsEvent.ACTION_CAPTIVE_PORTAL_LOGIN_RESULT_WANTED_AS_IS);
final int metricsEvent;
Result(int metricsEvent) { this.metricsEvent = metricsEvent; }
};
private URL mUrl; private URL mUrl;
private String mUserAgent; private String mUserAgent;
@@ -76,6 +86,9 @@ public class CaptivePortalLoginActivity extends Activity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
logMetricsEvent(MetricsEvent.ACTION_CAPTIVE_PORTAL_LOGIN_ACTIVITY);
mCm = ConnectivityManager.from(this); mCm = ConnectivityManager.from(this);
mNetwork = getIntent().getParcelableExtra(ConnectivityManager.EXTRA_NETWORK); mNetwork = getIntent().getParcelableExtra(ConnectivityManager.EXTRA_NETWORK);
mCaptivePortal = getIntent().getParcelableExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL); mCaptivePortal = getIntent().getParcelableExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL);
@@ -172,6 +185,7 @@ public class CaptivePortalLoginActivity extends Activity {
mCm.unregisterNetworkCallback(mNetworkCallback); mCm.unregisterNetworkCallback(mNetworkCallback);
mNetworkCallback = null; mNetworkCallback = null;
} }
logMetricsEvent(result.metricsEvent);
switch (result) { switch (result) {
case DISMISSED: case DISMISSED:
mCaptivePortal.reportCaptivePortalDismissed(); mCaptivePortal.reportCaptivePortalDismissed();
@@ -380,6 +394,7 @@ public class CaptivePortalLoginActivity extends Activity {
@Override @Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
logMetricsEvent(MetricsEvent.CAPTIVE_PORTAL_LOGIN_ACTIVITY_SSL_ERROR);
Log.w(TAG, "SSL error (error: " + error.getPrimaryError() + " host: " + Log.w(TAG, "SSL error (error: " + error.getPrimaryError() + " host: " +
// Only show host to avoid leaking private info. // Only show host to avoid leaking private info.
Uri.parse(error.getUrl()).getHost() + " certificate: " + Uri.parse(error.getUrl()).getHost() + " certificate: " +
@@ -483,4 +498,8 @@ public class CaptivePortalLoginActivity extends Activity {
} }
return url.getHost(); return url.getHost();
} }
private void logMetricsEvent(int event) {
MetricsLogger.action(this, event, getPackageName());
}
} }

View File

@@ -4090,6 +4090,11 @@ message MetricsEvent {
// OS: O DR // OS: O DR
SETTINGS_ASSIST_GESTURE_FIRST_TIME = 1012; SETTINGS_ASSIST_GESTURE_FIRST_TIME = 1012;
// CaptivePortalLoginActivity displays SSL error page
// CATEGORY: GLOBAL_SYSTEM_UI
// OS: O DR
CAPTIVE_PORTAL_LOGIN_ACTIVITY_SSL_ERROR = 1013;
// Add new aosp constants above this line. // Add new aosp constants above this line.
// END OF AOSP CONSTANTS // END OF AOSP CONSTANTS
} }