Commit eac7a1a3 authored by avayvod's avatar avayvod Committed by Commit bot

[Cast,Android] Don't assume there's always a matching provider for a route

After https://codereview.chromium.org/1593313011 the mappings between routes and MRPs are being cleaned up.
Which means that if casting is stopped from the browser UI while the page tried to send a message over, Chrome will crash.

BUG=None
TEST=Manual

Review URL: https://codereview.chromium.org/1632133006

Cr-Commit-Position: refs/heads/master@{#371509}
parent f2bd438b
...@@ -272,7 +272,7 @@ public class ChromeMediaRouter implements MediaRouteManager { ...@@ -272,7 +272,7 @@ public class ChromeMediaRouter implements MediaRouteManager {
@CalledByNative @CalledByNative
public void closeRoute(String routeId) { public void closeRoute(String routeId) {
MediaRouteProvider provider = mRouteIdsToProviders.get(routeId); MediaRouteProvider provider = mRouteIdsToProviders.get(routeId);
assert provider != null; if (provider == null) return;
provider.closeRoute(routeId); provider.closeRoute(routeId);
} }
...@@ -284,7 +284,7 @@ public class ChromeMediaRouter implements MediaRouteManager { ...@@ -284,7 +284,7 @@ public class ChromeMediaRouter implements MediaRouteManager {
@CalledByNative @CalledByNative
public void detachRoute(String routeId) { public void detachRoute(String routeId) {
MediaRouteProvider provider = mRouteIdsToProviders.get(routeId); MediaRouteProvider provider = mRouteIdsToProviders.get(routeId);
assert provider != null; if (provider == null) return;
provider.detachRoute(routeId); provider.detachRoute(routeId);
mRouteIdsToProviders.remove(routeId); mRouteIdsToProviders.remove(routeId);
...@@ -299,7 +299,10 @@ public class ChromeMediaRouter implements MediaRouteManager { ...@@ -299,7 +299,10 @@ public class ChromeMediaRouter implements MediaRouteManager {
@CalledByNative @CalledByNative
public void sendStringMessage(String routeId, String message, int callbackId) { public void sendStringMessage(String routeId, String message, int callbackId) {
MediaRouteProvider provider = mRouteIdsToProviders.get(routeId); MediaRouteProvider provider = mRouteIdsToProviders.get(routeId);
assert provider != null; if (provider == null) {
nativeOnMessageSentResult(mNativeMediaRouterAndroid, false, callbackId);
return;
}
provider.sendStringMessage(routeId, message, callbackId); provider.sendStringMessage(routeId, message, callbackId);
} }
...@@ -313,7 +316,10 @@ public class ChromeMediaRouter implements MediaRouteManager { ...@@ -313,7 +316,10 @@ public class ChromeMediaRouter implements MediaRouteManager {
@CalledByNative @CalledByNative
public void sendBinaryMessage(String routeId, byte[] data, int callbackId) { public void sendBinaryMessage(String routeId, byte[] data, int callbackId) {
MediaRouteProvider provider = mRouteIdsToProviders.get(routeId); MediaRouteProvider provider = mRouteIdsToProviders.get(routeId);
assert provider != null; if (provider == null) {
nativeOnMessageSentResult(mNativeMediaRouterAndroid, false, callbackId);
return;
}
provider.sendBinaryMessage(routeId, data, callbackId); provider.sendBinaryMessage(routeId, data, callbackId);
} }
......
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