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") {
"$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_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_fido_java",
"$google_play_services_package:google_play_services_gcm_java",
......@@ -458,7 +457,6 @@ junit_binary("chrome_junit_tests") {
":partner_location_descriptor_proto_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_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java",
"$google_play_services_package:google_play_services_fido_java",
"//base:base_java",
......@@ -536,7 +534,6 @@ android_library("chrome_test_java") {
":partner_location_descriptor_proto_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_cast_framework_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_gcm_java",
......
......@@ -172,12 +172,6 @@ by a child template that "extends" this file.
android:value="180226000"/>
{% 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
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
}
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override
public void createRoute(String sourceId, String sinkId, String presentationId, String origin,
int tabId, boolean isIncognito, int nativeRequestId) {
......
......@@ -12,7 +12,6 @@ import org.json.JSONObject;
import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting;
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.MediaRouteManager;
import org.chromium.chrome.browser.media.router.MediaRouteProvider;
......@@ -45,21 +44,18 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
return new CastMediaRouteProvider(ChromeMediaRouter.getAndroidMediaRouter(), manager);
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override
public void onSessionStartFailed() {
super.onSessionStartFailed();
mClientRecords.clear();
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override
public void onSessionStarted(CastSession session) {
super.onSessionStarted(session);
mMessageHandler.onSessionCreated(mSession);
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override
public void onSessionEnded() {
if (mSession == null) return;
......@@ -106,12 +102,10 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
return mMessageHandler;
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
public Set<String> getClients() {
return mClientRecords.keySet();
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
public Map<String, ClientRecord> getClientRecords() {
return mClientRecords;
}
......@@ -130,7 +124,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
mMessageHandler);
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override
public void onSessionStarting(
ChromeCastSessionManager.CastSessionLaunchRequest sessionLaunchRequest) {
......@@ -153,7 +146,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
}
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override
public void joinRoute(String sourceId, String presentationId, String origin, int tabId,
int nativeRequestId) {
......@@ -178,7 +170,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
mManager.onRouteCreated(route.id, route.sinkId, nativeRequestId, this, false);
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Override
public void closeRoute(String routeId) {
MediaRoute route = mRoutes.get(routeId);
......@@ -321,7 +312,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
mMessageHandler = new CastMessageHandler(this);
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
private boolean canAutoJoin(CastMediaSource source, String origin, int tabId) {
if (source.getAutoJoinPolicy().equals(CastMediaSource.AUTOJOIN_PAGE_SCOPED)) return false;
......@@ -348,7 +338,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
return false;
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
private boolean canJoinExistingSession(
String presentationId, String origin, int tabId, CastMediaSource source) {
if (AUTO_JOIN_PRESENTATION_ID.equals(presentationId)) {
......@@ -364,7 +353,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
return false;
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@Nullable
private ClientRecord getClientRecordByRouteId(String routeId) {
for (ClientRecord record : mClientRecords.values()) {
......@@ -373,7 +361,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
return null;
}
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
@VisibleForTesting
void addRoute(MediaRoute route, String origin, int tabId) {
mRoutes.put(route.id, route);
......@@ -438,7 +425,6 @@ public class CastMediaRouteProvider extends BaseMediaRouteProvider {
* @param originB A URL origin.
* @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) {
if (originA == null || originA.isEmpty() || originB == null || originB.isEmpty())
return false;
......
......@@ -14,7 +14,6 @@ import org.json.JSONObject;
import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.media.router.ClientRecord;
import java.util.ArrayDeque;
import java.util.Arrays;
......
......@@ -2,7 +2,9 @@
// 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;
package org.chromium.chrome.browser.media.router.cast;
import org.chromium.chrome.browser.media.router.MediaRoute;
import java.util.ArrayList;
import java.util.List;
......@@ -51,8 +53,13 @@ public class ClientRecord {
*/
public List<String> pendingMessages = new ArrayList<String>();
public ClientRecord(String routeId, String clientId, String appId, String autoJoinPolicy,
String origin, int tabId) {
ClientRecord(
String routeId,
String clientId,
String appId,
String autoJoinPolicy,
String origin,
int tabId) {
this.routeId = routeId;
this.clientId = clientId;
this.appId = appId;
......
......@@ -31,7 +31,6 @@ import javax.annotation.Nullable;
* Since there're numerous asynchronous calls involved in getting the application to launch
* the class is implemented as a state machine.
*/
// Migrated to CafMediaRouteProvider. See https://crbug.com/711860.
public class CreateRouteRequest implements GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener,
ResultCallback<Cast.ApplicationConnectionResult>,
......
......@@ -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/PositionExtrapolator.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/ChromeMediaRouterDialogController.java",
"java/src/org/chromium/chrome/browser/media/router/DiscoveryCallback.java",
......@@ -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/MediaSource.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/CastMessageHandler.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/CastMediaSource.java",
......@@ -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/CastSessionUtil.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/remoting/RemotingCastSession.java",
"java/src/org/chromium/chrome/browser/media/router/cast/remoting/RemotingMediaRouteProvider.java",
......
......@@ -35,7 +35,6 @@ import org.robolectric.shadows.ShadowLog;
import org.chromium.base.test.BaseRobolectricTestRunner;
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.JSONTestUtils.JSONObjectLike;
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