Commit 5b9084f8 authored by agrieve's avatar agrieve Committed by Commit Bot

Revert "[Android MR] Migrate session management"

This reverts commit 40d02af1.

Reason for revert: Broke downstream release builders, and caused
large binary size regression.

Original change's description:
> [Android MR] Migrate session management
> 
> This CL migrates the session management part of MediaRouter.
> CreateRouteRequest is not used and we are using route selection
> to let CAF start sessions automatically.
> 
> Change-Id: I58d267418d9afd11f4f44520e8ca8ad94e82388b
> Reviewed-on: https://chromium-review.googlesource.com/1006358
> Reviewed-by: David Trainor <dtrainor@chromium.org>
> Reviewed-by: Thomas Guilbert <tguilbert@chromium.org>
> Commit-Queue: Zhiqiang Zhang <zqzhang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#569080}

TBR=dtrainor@chromium.org,zqzhang@chromium.org,tguilbert@chromium.org

Change-Id: I8fae7d4492f873223b5efb3fc3e5d6acef37f981
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 855081, 855025
Reviewed-on: https://chromium-review.googlesource.com/1109981Reviewed-by: default avataragrieve <agrieve@chromium.org>
Commit-Queue: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569314}
parent 8c7199ca
...@@ -211,7 +211,6 @@ android_library("chrome_java") { ...@@ -211,7 +211,6 @@ android_library("chrome_java") {
"$google_play_services_package:google_play_services_auth_base_java", "$google_play_services_package:google_play_services_auth_base_java",
"$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_base_java",
"$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_basement_java",
"$google_play_services_package:google_play_services_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java", "$google_play_services_package:google_play_services_cast_java",
"$google_play_services_package:google_play_services_fido_java", "$google_play_services_package:google_play_services_fido_java",
"$google_play_services_package:google_play_services_gcm_java", "$google_play_services_package:google_play_services_gcm_java",
...@@ -458,7 +457,6 @@ junit_binary("chrome_junit_tests") { ...@@ -458,7 +457,6 @@ junit_binary("chrome_junit_tests") {
":partner_location_descriptor_proto_java", ":partner_location_descriptor_proto_java",
"$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_base_java",
"$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_basement_java",
"$google_play_services_package:google_play_services_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java", "$google_play_services_package:google_play_services_cast_java",
"$google_play_services_package:google_play_services_fido_java", "$google_play_services_package:google_play_services_fido_java",
"//base:base_java", "//base:base_java",
...@@ -536,7 +534,6 @@ android_library("chrome_test_java") { ...@@ -536,7 +534,6 @@ android_library("chrome_test_java") {
":partner_location_descriptor_proto_java", ":partner_location_descriptor_proto_java",
"$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_base_java",
"$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_basement_java",
"$google_play_services_package:google_play_services_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java", "$google_play_services_package:google_play_services_cast_java",
"$google_play_services_package:google_play_services_fido_java", "$google_play_services_package:google_play_services_fido_java",
"$google_play_services_package:google_play_services_gcm_java", "$google_play_services_package:google_play_services_gcm_java",
......
...@@ -172,12 +172,6 @@ by a child template that "extends" this file. ...@@ -172,12 +172,6 @@ by a child template that "extends" this file.
android:value="180226000"/> android:value="180226000"/>
{% endif %} {% endif %}
<!-- Cast support -->
<meta-data
android:name=
"com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
android:value="org.chromium.chrome.browser.media.router.caf.CastOptionsProvider"/>
<!-- Note: All activities directly or indirectly derived from ChromeActivity <!-- Note: All activities directly or indirectly derived from ChromeActivity
must specify android:hardwareAccelerated="false". must specify android:hardwareAccelerated="false".
......
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
/**
* The handler for cast messages. It receives events between the Cast SDK and the page, process and
* dispatch the messages accordingly. The handler talks to the Cast SDK via CastSession, and
* talks to the pages via the media router.
*/
public class CastMessageHandler {
// Sequence number used when no sequence number is required or was initially passed.
static final int INVALID_SEQUENCE_NUMBER = -1;
}
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
import android.content.Context;
import com.google.android.gms.cast.framework.CastOptions;
import com.google.android.gms.cast.framework.OptionsProvider;
import com.google.android.gms.cast.framework.SessionProvider;
import java.util.List;
/** {@link OptionsProvider} implementation for Chrome MR. */
public class CastOptionsProvider implements OptionsProvider {
@Override
public CastOptions getCastOptions(Context context) {
return new CastOptions.Builder().setCastMediaOptions(null).build();
}
@Override
public List<SessionProvider> getAdditionalSessionProviders(Context context) {
return null;
}
}
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
import com.google.android.gms.cast.framework.CastSession;
import org.chromium.chrome.browser.media.router.ClientRecord;
import org.chromium.chrome.browser.media.router.MediaSink;
import org.chromium.chrome.browser.media.router.MediaSource;
/**
* A wrapper for {@link CastSession}, extending its functionality for Chrome MediaRouter.
*
* Has the same lifecycle with CastSession.
*/
public class CastSessionController {
private static final String TAG = "CastSessionController";
private final CastSession mCastSession;
private final CafMediaRouteProvider mProvider;
private final MediaSink mSink;
private final MediaSource mSource;
public CastSessionController(CastSession castSession, CafMediaRouteProvider provider,
MediaSink sink, MediaSource source) {
mCastSession = castSession;
mProvider = provider;
mSink = sink;
mSource = source;
}
public MediaSource getSource() {
return mSource;
}
public MediaSink getSink() {
return mSink;
}
public CastSession getSession() {
return mCastSession;
}
public void onSessionStarted() {
for (ClientRecord client : mProvider.getClientRecords().values()) {
if (!client.isConnected) continue;
onClientConnected(client.clientId);
}
// TODO(zqzhang): register necessary listeners and attach to RemoteMediaClient.
}
public void onSessionEnded() {
// Not implemented.
}
public void endSession() {
CastSession currentCastSession =
CastUtils.getCastContext().getSessionManager().getCurrentCastSession();
if (currentCastSession == mCastSession) {
CastUtils.getCastContext().getSessionManager().endCurrentSession(true);
}
}
public void notifyReceiverAction(
String routeId, MediaSink sink, String clientId, String action) {
// Not implemented.
}
private void onClientConnected(String clientId) {
// Not implemented.
}
}
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
import com.google.android.gms.cast.framework.CastContext;
import org.chromium.base.ContextUtils;
/** Utility methods for Cast. */
public class CastUtils {
public static CastContext getCastContext() {
return CastContext.getSharedInstance(ContextUtils.getApplicationContext());
}
}
...@@ -164,7 +164,6 @@ public abstract class BaseMediaRouteProvider ...@@ -164,7 +164,6 @@ public abstract class BaseMediaRouteProvider
} }
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override @Override
public void createRoute(String sourceId, String sinkId, String presentationId, String origin, public void createRoute(String sourceId, String sinkId, String presentationId, String origin,
int tabId, boolean isIncognito, int nativeRequestId) { int tabId, boolean isIncognito, int nativeRequestId) {
......
...@@ -12,7 +12,6 @@ import org.json.JSONObject; ...@@ -12,7 +12,6 @@ import org.json.JSONObject;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.media.router.ChromeMediaRouter; import org.chromium.chrome.browser.media.router.ChromeMediaRouter;
import org.chromium.chrome.browser.media.router.ClientRecord;
import org.chromium.chrome.browser.media.router.MediaRoute; import org.chromium.chrome.browser.media.router.MediaRoute;
import org.chromium.chrome.browser.media.router.MediaRouteManager; import org.chromium.chrome.browser.media.router.MediaRouteManager;
import org.chromium.chrome.browser.media.router.MediaRouteProvider; import org.chromium.chrome.browser.media.router.MediaRouteProvider;
...@@ -45,21 +44,18 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider { ...@@ -45,21 +44,18 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
return new CastMediaRouteProvider(ChromeMediaRouter.getAndroidMediaRouter(), manager); return new CastMediaRouteProvider(ChromeMediaRouter.getAndroidMediaRouter(), manager);
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override @Override
public void onSessionStartFailed() { public void onSessionStartFailed() {
super.onSessionStartFailed(); super.onSessionStartFailed();
mClientRecords.clear(); mClientRecords.clear();
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override @Override
public void onSessionStarted(CastSession session) { public void onSessionStarted(CastSession session) {
super.onSessionStarted(session); super.onSessionStarted(session);
mMessageHandler.onSessionCreated(mSession); mMessageHandler.onSessionCreated(mSession);
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override @Override
public void onSessionEnded() { public void onSessionEnded() {
if (mSession == null) return; if (mSession == null) return;
...@@ -106,12 +102,10 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider { ...@@ -106,12 +102,10 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
return mMessageHandler; return mMessageHandler;
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
public Set<String> getClients() { public Set<String> getClients() {
return mClientRecords.keySet(); return mClientRecords.keySet();
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
public Map<String, ClientRecord> getClientRecords() { public Map<String, ClientRecord> getClientRecords() {
return mClientRecords; return mClientRecords;
} }
...@@ -130,7 +124,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider { ...@@ -130,7 +124,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
mMessageHandler); mMessageHandler);
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override @Override
public void onSessionStarting( public void onSessionStarting(
ChromeCastSessionManager.CastSessionLaunchRequest sessionLaunchRequest) { ChromeCastSessionManager.CastSessionLaunchRequest sessionLaunchRequest) {
...@@ -153,7 +146,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider { ...@@ -153,7 +146,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
} }
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override @Override
public void joinRoute(String sourceId, String presentationId, String origin, int tabId, public void joinRoute(String sourceId, String presentationId, String origin, int tabId,
int nativeRequestId) { int nativeRequestId) {
...@@ -178,7 +170,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider { ...@@ -178,7 +170,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
mManager.onRouteCreated(route.id, route.sinkId, nativeRequestId, this, false); mManager.onRouteCreated(route.id, route.sinkId, nativeRequestId, this, false);
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override @Override
public void closeRoute(String routeId) { public void closeRoute(String routeId) {
MediaRoute route = mRoutes.get(routeId); MediaRoute route = mRoutes.get(routeId);
...@@ -321,7 +312,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider { ...@@ -321,7 +312,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
mMessageHandler = new CastMessageHandler(this); mMessageHandler = new CastMessageHandler(this);
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
private boolean canAutoJoin(CastMediaSource source, String origin, int tabId) { private boolean canAutoJoin(CastMediaSource source, String origin, int tabId) {
if (source.getAutoJoinPolicy().equals(CastMediaSource.AUTOJOIN_PAGE_SCOPED)) return false; if (source.getAutoJoinPolicy().equals(CastMediaSource.AUTOJOIN_PAGE_SCOPED)) return false;
...@@ -348,7 +338,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider { ...@@ -348,7 +338,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
return false; return false;
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
private boolean canJoinExistingSession( private boolean canJoinExistingSession(
String presentationId, String origin, int tabId, CastMediaSource source) { String presentationId, String origin, int tabId, CastMediaSource source) {
if (AUTO_JOIN_PRESENTATION_ID.equals(presentationId)) { if (AUTO_JOIN_PRESENTATION_ID.equals(presentationId)) {
...@@ -364,7 +353,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider { ...@@ -364,7 +353,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
return false; return false;
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Nullable @Nullable
private ClientRecord getClientRecordByRouteId(String routeId) { private ClientRecord getClientRecordByRouteId(String routeId) {
for (ClientRecord record : mClientRecords.values()) { for (ClientRecord record : mClientRecords.values()) {
...@@ -373,7 +361,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider { ...@@ -373,7 +361,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
return null; return null;
} }
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@VisibleForTesting @VisibleForTesting
void addRoute(MediaRoute route, String origin, int tabId) { void addRoute(MediaRoute route, String origin, int tabId) {
mRoutes.put(route.id, route); mRoutes.put(route.id, route);
...@@ -438,7 +425,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider { ...@@ -438,7 +425,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
* @param originB A URL origin. * @param originB A URL origin.
* @return True if originA and originB represent the same origin, false otherwise. * @return True if originA and originB represent the same origin, false otherwise.
*/ */
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
private static final boolean isSameOrigin(String originA, String originB) { private static final boolean isSameOrigin(String originA, String originB) {
if (originA == null || originA.isEmpty() || originB == null || originB.isEmpty()) if (originA == null || originA.isEmpty() || originB == null || originB.isEmpty())
return false; return false;
......
...@@ -14,7 +14,6 @@ import org.json.JSONObject; ...@@ -14,7 +14,6 @@ import org.json.JSONObject;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.media.router.ClientRecord;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.Arrays; import java.util.Arrays;
......
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
package org.chromium.chrome.browser.media.router; package org.chromium.chrome.browser.media.router.cast;
import org.chromium.chrome.browser.media.router.MediaRoute;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -51,8 +53,13 @@ public class ClientRecord { ...@@ -51,8 +53,13 @@ public class ClientRecord {
*/ */
public List<String> pendingMessages = new ArrayList<String>(); public List<String> pendingMessages = new ArrayList<String>();
public ClientRecord(String routeId, String clientId, String appId, String autoJoinPolicy, ClientRecord(
String origin, int tabId) { String routeId,
String clientId,
String appId,
String autoJoinPolicy,
String origin,
int tabId) {
this.routeId = routeId; this.routeId = routeId;
this.clientId = clientId; this.clientId = clientId;
this.appId = appId; this.appId = appId;
......
...@@ -31,7 +31,6 @@ import javax.annotation.Nullable; ...@@ -31,7 +31,6 @@ import javax.annotation.Nullable;
* Since there're numerous asynchronous calls involved in getting the application to launch * Since there're numerous asynchronous calls involved in getting the application to launch
* the class is implemented as a state machine. * the class is implemented as a state machine.
*/ */
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
public class CreateRouteRequest implements GoogleApiClient.ConnectionCallbacks, public class CreateRouteRequest implements GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener, GoogleApiClient.OnConnectionFailedListener,
ResultCallback<Cast.ApplicationConnectionResult>, ResultCallback<Cast.ApplicationConnectionResult>,
......
...@@ -704,7 +704,6 @@ chrome_java_sources = [ ...@@ -704,7 +704,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/media/remote/RemoteVideoInfo.java", "java/src/org/chromium/chrome/browser/media/remote/RemoteVideoInfo.java",
"java/src/org/chromium/chrome/browser/media/remote/PositionExtrapolator.java", "java/src/org/chromium/chrome/browser/media/remote/PositionExtrapolator.java",
"java/src/org/chromium/chrome/browser/media/router/BaseMediaRouteDialogManager.java", "java/src/org/chromium/chrome/browser/media/router/BaseMediaRouteDialogManager.java",
"java/src/org/chromium/chrome/browser/media/router/ClientRecord.java",
"java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java", "java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java",
"java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouterDialogController.java", "java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouterDialogController.java",
"java/src/org/chromium/chrome/browser/media/router/DiscoveryCallback.java", "java/src/org/chromium/chrome/browser/media/router/DiscoveryCallback.java",
...@@ -720,11 +719,7 @@ chrome_java_sources = [ ...@@ -720,11 +719,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/media/router/MediaRouteProvider.java", "java/src/org/chromium/chrome/browser/media/router/MediaRouteProvider.java",
"java/src/org/chromium/chrome/browser/media/router/MediaSource.java", "java/src/org/chromium/chrome/browser/media/router/MediaSource.java",
"java/src/org/chromium/chrome/browser/media/router/MediaSink.java", "java/src/org/chromium/chrome/browser/media/router/MediaSink.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CastOptionsProvider.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CastUtils.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java", "java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CastMessageHandler.java",
"java/src/org/chromium/chrome/browser/media/router/cast/BaseMediaRouteProvider.java", "java/src/org/chromium/chrome/browser/media/router/cast/BaseMediaRouteProvider.java",
"java/src/org/chromium/chrome/browser/media/router/cast/CastMediaRouteProvider.java", "java/src/org/chromium/chrome/browser/media/router/cast/CastMediaRouteProvider.java",
"java/src/org/chromium/chrome/browser/media/router/cast/CastMediaSource.java", "java/src/org/chromium/chrome/browser/media/router/cast/CastMediaSource.java",
...@@ -735,6 +730,7 @@ chrome_java_sources = [ ...@@ -735,6 +730,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/media/router/cast/CastSessionInfo.java", "java/src/org/chromium/chrome/browser/media/router/cast/CastSessionInfo.java",
"java/src/org/chromium/chrome/browser/media/router/cast/CastSessionUtil.java", "java/src/org/chromium/chrome/browser/media/router/cast/CastSessionUtil.java",
"java/src/org/chromium/chrome/browser/media/router/cast/ChromeCastSessionManager.java", "java/src/org/chromium/chrome/browser/media/router/cast/ChromeCastSessionManager.java",
"java/src/org/chromium/chrome/browser/media/router/cast/ClientRecord.java",
"java/src/org/chromium/chrome/browser/media/router/cast/CreateRouteRequest.java", "java/src/org/chromium/chrome/browser/media/router/cast/CreateRouteRequest.java",
"java/src/org/chromium/chrome/browser/media/router/cast/remoting/RemotingCastSession.java", "java/src/org/chromium/chrome/browser/media/router/cast/remoting/RemotingCastSession.java",
"java/src/org/chromium/chrome/browser/media/router/cast/remoting/RemotingMediaRouteProvider.java", "java/src/org/chromium/chrome/browser/media/router/cast/remoting/RemotingMediaRouteProvider.java",
......
...@@ -35,7 +35,6 @@ import org.robolectric.shadows.ShadowLog; ...@@ -35,7 +35,6 @@ import org.robolectric.shadows.ShadowLog;
import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
import org.chromium.chrome.browser.media.router.ClientRecord;
import org.chromium.chrome.browser.media.router.cast.CastMessageHandler.RequestRecord; import org.chromium.chrome.browser.media.router.cast.CastMessageHandler.RequestRecord;
import org.chromium.chrome.browser.media.router.cast.JSONTestUtils.JSONObjectLike; import org.chromium.chrome.browser.media.router.cast.JSONTestUtils.JSONObjectLike;
import org.chromium.chrome.browser.media.router.cast.JSONTestUtils.JSONStringLike; import org.chromium.chrome.browser.media.router.cast.JSONTestUtils.JSONStringLike;
......
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