Commit 48d00622 authored by Evan Stade's avatar Evan Stade Committed by Commit Bot

Clank: Fix media router/casting with isolated splits

CastOptionsProvider is moved back into //chrome and Chrome's
base java module. A copy is also made for WebLayer shell.

Bug: 1144240
Change-Id: Ieed443a573ef8c2361f48dd4915a92569dd5a9e1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2512808
Commit-Queue: Evan Stade <estade@chromium.org>
Reviewed-by: default avatarThomas Guilbert <tguilbert@chromium.org>
Reviewed-by: default avatarClark DuVall <cduvall@chromium.org>
Reviewed-by: default avatarAndrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#823384}
parent 55e8eaa1
...@@ -2115,6 +2115,7 @@ android_library("base_module_java") { ...@@ -2115,6 +2115,7 @@ android_library("base_module_java") {
"java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java", "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java",
"java/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapterService.java", "java/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapterService.java",
"java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationService.java", "java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationService.java",
"java/src/org/chromium/chrome/browser/media/router/CastOptionsProvider.java",
"java/src/org/chromium/chrome/browser/media/ui/ChromeMediaNotificationControllerServices.java", "java/src/org/chromium/chrome/browser/media/ui/ChromeMediaNotificationControllerServices.java",
"java/src/org/chromium/chrome/browser/notifications/NotificationJobService.java", "java/src/org/chromium/chrome/browser/notifications/NotificationJobService.java",
"java/src/org/chromium/chrome/browser/notifications/NotificationService.java", "java/src/org/chromium/chrome/browser/notifications/NotificationService.java",
...@@ -2128,6 +2129,7 @@ android_library("base_module_java") { ...@@ -2128,6 +2129,7 @@ android_library("base_module_java") {
] ]
deps = [ deps = [
":chrome_base_module_resources", ":chrome_base_module_resources",
"$google_play_services_package:google_play_services_cast_java",
"$google_play_services_package:google_play_services_gcm_java", "$google_play_services_package:google_play_services_gcm_java",
"//base:base_java", "//base:base_java",
"//components/embedder_support/android:application_java", "//components/embedder_support/android:application_java",
......
...@@ -828,7 +828,7 @@ ...@@ -828,7 +828,7 @@
<meta-data android:name="android.allow_multiple_resumed_activities" android:value="true"/> <meta-data android:name="android.allow_multiple_resumed_activities" android:value="true"/>
<meta-data android:name="android.content.APP_RESTRICTIONS" android:resource="@xml/app_restrictions"/> <meta-data android:name="android.content.APP_RESTRICTIONS" android:resource="@xml/app_restrictions"/>
<meta-data android:name="com.android.webview.WebViewLibrary" android:value="libmonochrome.so"/> <meta-data android:name="com.android.webview.WebViewLibrary" android:value="libmonochrome.so"/>
<meta-data android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME" android:value="org.chromium.components.media_router.caf.CastOptionsProvider"/> <meta-data android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME" android:value="org.chromium.chrome.browser.media.router.CastOptionsProvider"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<meta-data android:name="com.google.ar.core" android:value="optional"/> <meta-data android:name="com.google.ar.core" android:value="optional"/>
<meta-data android:name="com.google.ar.core.min_apk_version" android:value="200501000"/> <meta-data android:name="com.google.ar.core.min_apk_version" android:value="200501000"/>
......
...@@ -782,7 +782,7 @@ ...@@ -782,7 +782,7 @@
</activity-alias> # DIFF-ANCHOR: 7c349c4f </activity-alias> # DIFF-ANCHOR: 7c349c4f
<meta-data android:name="android.allow_multiple_resumed_activities" android:value="true"/> <meta-data android:name="android.allow_multiple_resumed_activities" android:value="true"/>
<meta-data android:name="android.content.APP_RESTRICTIONS" android:resource="@xml/app_restrictions"/> <meta-data android:name="android.content.APP_RESTRICTIONS" android:resource="@xml/app_restrictions"/>
<meta-data android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME" android:value="org.chromium.components.media_router.caf.CastOptionsProvider"/> <meta-data android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME" android:value="org.chromium.chrome.browser.media.router.CastOptionsProvider"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<meta-data android:name="com.google.ar.core" android:value="optional"/> <meta-data android:name="com.google.ar.core" android:value="optional"/>
<meta-data android:name="com.google.ar.core.min_apk_version" android:value="200501000"/> <meta-data android:name="com.google.ar.core.min_apk_version" android:value="200501000"/>
......
...@@ -1264,7 +1264,7 @@ by a child template that "extends" this file. ...@@ -1264,7 +1264,7 @@ by a child template that "extends" this file.
<meta-data <meta-data
android:name= android:name=
"com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME" "com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
android:value="org.chromium.components.media_router.caf.CastOptionsProvider"/> android:value="org.chromium.chrome.browser.media.router.CastOptionsProvider"/>
{% block base_application_definitions %} {% block base_application_definitions %}
{% endblock %} {% endblock %}
......
// Copyright 2020 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;
import android.content.Context;
import com.google.android.gms.cast.LaunchOptions;
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 media router.
*
* This has to live in the base java module for it to be loaded under isolated splits.
*/
public class CastOptionsProvider implements OptionsProvider {
@Override
public CastOptions getCastOptions(Context context) {
return new CastOptions.Builder()
.setCastMediaOptions(null)
.setEnableReconnectionService(false)
.setLaunchOptions(new LaunchOptions.Builder().setRelaunchIfRunning(true).build())
.setResumeSavedSession(false)
.setStopReceiverApplicationWhenEndingSession(true)
.build();
}
@Override
public List<SessionProvider> getAdditionalSessionProviders(Context context) {
return null;
}
}
...@@ -58,7 +58,6 @@ android_library("java") { ...@@ -58,7 +58,6 @@ android_library("java") {
"java/src/org/chromium/components/media_router/caf/CafMessageHandler.java", "java/src/org/chromium/components/media_router/caf/CafMessageHandler.java",
"java/src/org/chromium/components/media_router/caf/CafNotificationController.java", "java/src/org/chromium/components/media_router/caf/CafNotificationController.java",
"java/src/org/chromium/components/media_router/caf/CastMediaSource.java", "java/src/org/chromium/components/media_router/caf/CastMediaSource.java",
"java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java",
"java/src/org/chromium/components/media_router/caf/CastSessionController.java", "java/src/org/chromium/components/media_router/caf/CastSessionController.java",
"java/src/org/chromium/components/media_router/caf/CastUtils.java", "java/src/org/chromium/components/media_router/caf/CastUtils.java",
"java/src/org/chromium/components/media_router/caf/CreateRouteRequestInfo.java", "java/src/org/chromium/components/media_router/caf/CreateRouteRequestInfo.java",
......
...@@ -36,11 +36,13 @@ android_library("weblayer_shell_java") { ...@@ -36,11 +36,13 @@ android_library("weblayer_shell_java") {
testonly = true testonly = true
resources_package = "org.chromium.weblayer.shell" resources_package = "org.chromium.weblayer.shell"
# The play services dependency is necessary for the # The google_play_services_base_java dependency is necessary for the
# google_play_services_version definition in the manifest. # google_play_services_version definition in the manifest.
deps = [ deps = [
":weblayer_shell_resources", ":weblayer_shell_resources",
"$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_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java",
"//base:base_java", "//base:base_java",
"//components/strictmode/android:java", "//components/strictmode/android:java",
"//third_party/android_deps:android_support_v4_java", "//third_party/android_deps:android_support_v4_java",
...@@ -49,6 +51,7 @@ android_library("weblayer_shell_java") { ...@@ -49,6 +51,7 @@ android_library("weblayer_shell_java") {
"//weblayer/public/java", "//weblayer/public/java",
] ]
sources = [ sources = [
"shell_apk/src/org/chromium/weblayer/shell/CastOptionsProvider.java",
"shell_apk/src/org/chromium/weblayer/shell/InstrumentationActivity.java", "shell_apk/src/org/chromium/weblayer/shell/InstrumentationActivity.java",
"shell_apk/src/org/chromium/weblayer/shell/TelemetryActivity.java", "shell_apk/src/org/chromium/weblayer/shell/TelemetryActivity.java",
"shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java", "shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java",
......
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
<meta-data <meta-data
android:name= android:name=
"com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME" "com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
android:value="org.chromium.components.media_router.caf.CastOptionsProvider"/> android:value="org.chromium.weblayer.shell.CastOptionsProvider"/>
{% if weblayer_package is defined %} {% if weblayer_package is defined %}
<meta-data android:name="org.chromium.weblayer.WebLayerPackage" <meta-data android:name="org.chromium.weblayer.WebLayerPackage"
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// 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.components.media_router.caf; package org.chromium.weblayer.shell;
import android.content.Context; import android.content.Context;
...@@ -13,7 +13,7 @@ import com.google.android.gms.cast.framework.SessionProvider; ...@@ -13,7 +13,7 @@ import com.google.android.gms.cast.framework.SessionProvider;
import java.util.List; import java.util.List;
/** {@link OptionsProvider} implementation for Chrome MR. */ /** {@link OptionsProvider} implementation for WebLayer Shell casting. */
public class CastOptionsProvider implements OptionsProvider { public class CastOptionsProvider implements OptionsProvider {
@Override @Override
public CastOptions getCastOptions(Context context) { public CastOptions getCastOptions(Context context) {
......
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