Commit 6a7f651b authored by Peter Kotwicz's avatar Peter Kotwicz Committed by Commit Bot

[Android WebAPK] Show splash dialog for only some net errors

This CL changes the "Can't connect to site" splash screen WebAPK dialog
to show for only the net errors which trigger the dino game
interstitial:
1) ERR_NAME_NOT_RESOLVED (the net error which precedes
DNS_PROBE_FINISHED_NO_INTERNET)
2) ERR_INTERNET_DISCONNECTED

BUG=1086785

Change-Id: Ia8de9fd4a69f9fb254b2a085e5100981f7af4d29
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2217200Reviewed-by: default avatarGlenn Hartmann <hartmanng@chromium.org>
Commit-Queue: Peter Kotwicz <pkotwicz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#772456}
parent bae50262
...@@ -54,7 +54,11 @@ public class WebApkSplashNetworkErrorObserver extends EmptyTabObserver { ...@@ -54,7 +54,11 @@ public class WebApkSplashNetworkErrorObserver extends EmptyTabObserver {
onNetworkChanged(tab); onNetworkChanged(tab);
break; break;
default: default:
onNetworkError(tab, navigation.errorCode()); String dialogMessage =
generateNetworkErrorWebApkDialogMessage(navigation.errorCode());
if (dialogMessage != null) {
onNetworkError(tab, dialogMessage);
}
break; break;
} }
WebApkUma.recordNetworkErrorWhenLaunch(-navigation.errorCode()); WebApkUma.recordNetworkErrorWhenLaunch(-navigation.errorCode());
...@@ -71,7 +75,7 @@ public class WebApkSplashNetworkErrorObserver extends EmptyTabObserver { ...@@ -71,7 +75,7 @@ public class WebApkSplashNetworkErrorObserver extends EmptyTabObserver {
mAllowReloads = false; mAllowReloads = false;
} }
private void onNetworkError(final Tab tab, @NetError int errorCode) { private void onNetworkError(final Tab tab, String dialogMessage) {
// Do not show the network error dialog more than once (e.g. if the user backed out of // Do not show the network error dialog more than once (e.g. if the user backed out of
// the dialog). // the dialog).
if (mDidShowNetworkErrorDialog) return; if (mDidShowNetworkErrorDialog) return;
...@@ -93,10 +97,13 @@ public class WebApkSplashNetworkErrorObserver extends EmptyTabObserver { ...@@ -93,10 +97,13 @@ public class WebApkSplashNetworkErrorObserver extends EmptyTabObserver {
NetworkChangeNotifier.addConnectionTypeObserver(observer); NetworkChangeNotifier.addConnectionTypeObserver(observer);
mOfflineDialog = new WebApkOfflineDialog(); mOfflineDialog = new WebApkOfflineDialog();
mOfflineDialog.show(mActivity, generateNetworkErrorWebApkDialogMessage(errorCode)); mOfflineDialog.show(mActivity, dialogMessage);
} }
/** Generates network error dialog message for the given error code. */ /**
* Generates network error dialog message for the given error code. Returns null if the
* dialog should not be shown.
*/
private String generateNetworkErrorWebApkDialogMessage(@NetError int errorCode) { private String generateNetworkErrorWebApkDialogMessage(@NetError int errorCode) {
Context context = ContextUtils.getApplicationContext(); Context context = ContextUtils.getApplicationContext();
switch (errorCode) { switch (errorCode) {
...@@ -105,8 +112,10 @@ public class WebApkSplashNetworkErrorObserver extends EmptyTabObserver { ...@@ -105,8 +112,10 @@ public class WebApkSplashNetworkErrorObserver extends EmptyTabObserver {
case NetError.ERR_TUNNEL_CONNECTION_FAILED: case NetError.ERR_TUNNEL_CONNECTION_FAILED:
return context.getString( return context.getString(
R.string.webapk_network_error_message_tunnel_connection_failed); R.string.webapk_network_error_message_tunnel_connection_failed);
default: case NetError.ERR_NAME_NOT_RESOLVED:
return context.getString(R.string.webapk_cannot_connect_to_site); return context.getString(R.string.webapk_cannot_connect_to_site);
default:
return null;
} }
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment