Commit e8661c3d authored by Jinsuk Kim's avatar Jinsuk Kim Committed by Commit Bot

vr: Remove use of TabImpl.getActivity

void (Ar|Vr)ContentDialog.show(ChromeActivity -> WindowAndroid)

The classes were passed ChromeActivity to get ModalDialogManager. This
can be obtained from WindowAndroid too.

Replaces TabImpl.getActivity with (ChromeActivity) TabUtils.getActivity.
in ArCoreJavaUtils. Its native uses renderer process/frame id to find
WebContents, Tab, and then ChromeActivity. Ended up casting the activity
for now.

Bug: 952703
Change-Id: Ic219cb01e896e8e322a8804be0b78ef497ba078d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2129366Reviewed-by: default avatarMichael Thiessen <mthiesse@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#755202}
parent 10989aaa
...@@ -14,9 +14,7 @@ import org.chromium.base.annotations.CalledByNative; ...@@ -14,9 +14,7 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods; import org.chromium.base.annotations.NativeMethods;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabImpl;
import org.chromium.components.url_formatter.SchemeDisplay; import org.chromium.components.url_formatter.SchemeDisplay;
import org.chromium.components.url_formatter.UrlFormatter; import org.chromium.components.url_formatter.UrlFormatter;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
...@@ -59,7 +57,7 @@ public class ArConsentDialog implements ModalDialogProperties.Controller { ...@@ -59,7 +57,7 @@ public class ArConsentDialog implements ModalDialogProperties.Controller {
String url = webContents.getLastCommittedUrl(); String url = webContents.getLastCommittedUrl();
ArConsentDialog dialog = new ArConsentDialog(instance, url); ArConsentDialog dialog = new ArConsentDialog(instance, url);
dialog.show(((TabImpl) tab).getActivity()); dialog.show(tab.getWindowAndroid());
return dialog; return dialog;
} }
...@@ -75,9 +73,9 @@ public class ArConsentDialog implements ModalDialogProperties.Controller { ...@@ -75,9 +73,9 @@ public class ArConsentDialog implements ModalDialogProperties.Controller {
mUrl = url; mUrl = url;
} }
public void show(ChromeActivity activity) { public void show(WindowAndroid window) {
mWindowAndroid = activity.getWindowAndroid(); mWindowAndroid = window;
Resources resources = activity.getResources(); Resources resources = window.getContext().get().getResources();
String dialogTitle = resources.getString(R.string.ar_immersive_mode_consent_title, String dialogTitle = resources.getString(R.string.ar_immersive_mode_consent_title,
UrlFormatter.formatUrlForSecurityDisplay(mUrl, SchemeDisplay.OMIT_HTTP_AND_HTTPS)); UrlFormatter.formatUrlForSecurityDisplay(mUrl, SchemeDisplay.OMIT_HTTP_AND_HTTPS));
...@@ -93,7 +91,7 @@ public class ArConsentDialog implements ModalDialogProperties.Controller { ...@@ -93,7 +91,7 @@ public class ArConsentDialog implements ModalDialogProperties.Controller {
R.string.cancel) R.string.cancel)
.with(ModalDialogProperties.CANCEL_ON_TOUCH_OUTSIDE, true) .with(ModalDialogProperties.CANCEL_ON_TOUCH_OUTSIDE, true)
.build(); .build();
mModalDialogManager = activity.getModalDialogManager(); mModalDialogManager = window.getModalDialogManager();
mModalDialogManager.showDialog(model, ModalDialogManager.ModalDialogType.TAB); mModalDialogManager.showDialog(model, ModalDialogManager.ModalDialogType.TAB);
} }
......
...@@ -13,14 +13,13 @@ import org.chromium.base.annotations.CalledByNative; ...@@ -13,14 +13,13 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods; import org.chromium.base.annotations.NativeMethods;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabImpl;
import org.chromium.components.url_formatter.SchemeDisplay; import org.chromium.components.url_formatter.SchemeDisplay;
import org.chromium.components.url_formatter.UrlFormatter; import org.chromium.components.url_formatter.UrlFormatter;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.WebContentsObserver; import org.chromium.content_public.browser.WebContentsObserver;
import org.chromium.content_public.browser.XrConsentPromptLevel; import org.chromium.content_public.browser.XrConsentPromptLevel;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modaldialog.DialogDismissalCause; import org.chromium.ui.modaldialog.DialogDismissalCause;
import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogProperties; import org.chromium.ui.modaldialog.ModalDialogProperties;
...@@ -57,7 +56,7 @@ public class VrConsentDialog ...@@ -57,7 +56,7 @@ public class VrConsentDialog
private static VrConsentDialog promptForUserConsent( private static VrConsentDialog promptForUserConsent(
long instance, final Tab tab, @XrConsentPromptLevel int consentLevel) { long instance, final Tab tab, @XrConsentPromptLevel int consentLevel) {
VrConsentDialog dialog = new VrConsentDialog(instance, tab.getWebContents(), consentLevel); VrConsentDialog dialog = new VrConsentDialog(instance, tab.getWebContents(), consentLevel);
dialog.show(((TabImpl) tab).getActivity(), new VrConsentListener() { dialog.show(tab.getWindowAndroid(), new VrConsentListener() {
@Override @Override
public void onUserConsent(boolean allowed) { public void onUserConsent(boolean allowed) {
dialog.onUserGesture(allowed); dialog.onUserGesture(allowed);
...@@ -83,10 +82,10 @@ public class VrConsentDialog ...@@ -83,10 +82,10 @@ public class VrConsentDialog
return resources.getString(R.string.xr_consent_bullet, resources.getString(id)); return resources.getString(R.string.xr_consent_bullet, resources.getString(id));
} }
public void show(@NonNull ChromeActivity activity, @NonNull VrConsentListener listener) { public void show(@NonNull WindowAndroid window, @NonNull VrConsentListener listener) {
mListener = listener; mListener = listener;
Resources resources = activity.getResources(); Resources resources = window.getContext().get().getResources();
String dialogTitle = resources.getString(R.string.xr_consent_dialog_title, String dialogTitle = resources.getString(R.string.xr_consent_dialog_title,
UrlFormatter.formatUrlForSecurityDisplay(mUrl, SchemeDisplay.OMIT_HTTP_AND_HTTPS)); UrlFormatter.formatUrlForSecurityDisplay(mUrl, SchemeDisplay.OMIT_HTTP_AND_HTTPS));
...@@ -121,7 +120,7 @@ public class VrConsentDialog ...@@ -121,7 +120,7 @@ public class VrConsentDialog
R.string.cancel) R.string.cancel)
.with(ModalDialogProperties.CANCEL_ON_TOUCH_OUTSIDE, true) .with(ModalDialogProperties.CANCEL_ON_TOUCH_OUTSIDE, true)
.build(); .build();
mModalDialogManager = activity.getModalDialogManager(); mModalDialogManager = window.getModalDialogManager();
mModalDialogManager.showDialog(model, ModalDialogManager.ModalDialogType.TAB); mModalDialogManager.showDialog(model, ModalDialogManager.ModalDialogType.TAB);
} }
......
...@@ -59,7 +59,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; ...@@ -59,7 +59,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabImpl; import org.chromium.chrome.browser.tab.TabUtils;
import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.webapps.WebappActivity; import org.chromium.chrome.browser.webapps.WebappActivity;
import org.chromium.content_public.browser.ScreenOrientationDelegate; import org.chromium.content_public.browser.ScreenOrientationDelegate;
...@@ -788,14 +788,13 @@ public class VrShellDelegate ...@@ -788,14 +788,13 @@ public class VrShellDelegate
private static void startFeedback(Tab tab) { private static void startFeedback(Tab tab) {
// TODO(ymalik): This call will connect to the Google Services api which can be slow. Can we // TODO(ymalik): This call will connect to the Google Services api which can be slow. Can we
// connect to it beforehand when we know that we'll be prompting for feedback? // connect to it beforehand when we know that we'll be prompting for feedback?
HelpAndFeedback.getInstance().showFeedback(((TabImpl) tab).getActivity(), HelpAndFeedback.getInstance().showFeedback(TabUtils.getActivity(tab),
Profile.fromWebContents(tab.getWebContents()), tab.getUrlString(), Profile.fromWebContents(tab.getWebContents()), tab.getUrlString(),
ContextUtils.getApplicationContext().getPackageName() + "." + FEEDBACK_REPORT_TYPE); ContextUtils.getApplicationContext().getPackageName() + "." + FEEDBACK_REPORT_TYPE);
} }
private static void promptForFeedback(final Tab tab) { private static void promptForFeedback(final Tab tab) {
if (tab == null) return; if (tab == null) return;
final ChromeActivity activity = ((TabImpl) tab).getActivity();
SimpleConfirmInfoBarBuilder.Listener listener = new SimpleConfirmInfoBarBuilder.Listener() { SimpleConfirmInfoBarBuilder.Listener listener = new SimpleConfirmInfoBarBuilder.Listener() {
@Override @Override
public void onInfoBarDismissed() {} public void onInfoBarDismissed() {}
...@@ -823,7 +822,7 @@ public class VrShellDelegate ...@@ -823,7 +822,7 @@ public class VrShellDelegate
org.chromium.chrome.vr.R.string.vr_shell_feedback_infobar_description), org.chromium.chrome.vr.R.string.vr_shell_feedback_infobar_description),
ContextUtils.getApplicationContext().getString( ContextUtils.getApplicationContext().getString(
org.chromium.chrome.vr.R.string.vr_shell_feedback_infobar_feedback_button), org.chromium.chrome.vr.R.string.vr_shell_feedback_infobar_feedback_button),
activity.getString(R.string.no_thanks), null /* linkText */, tab.getContext().getString(R.string.no_thanks), null /* linkText */,
true /* autoExpire */); true /* autoExpire */);
} }
......
...@@ -16,8 +16,9 @@ import org.chromium.base.ThreadUtils; ...@@ -16,8 +16,9 @@ import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods; import org.chromium.base.annotations.NativeMethods;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabImpl; import org.chromium.chrome.browser.tab.TabUtils;
/** /**
* Provides ARCore classes access to java-related app functionality. * Provides ARCore classes access to java-related app functionality.
...@@ -79,7 +80,7 @@ public class ArCoreJavaUtils { ...@@ -79,7 +80,7 @@ public class ArCoreJavaUtils {
if (DEBUG_LOGS) Log.i(TAG, "startSession"); if (DEBUG_LOGS) Log.i(TAG, "startSession");
mArImmersiveOverlay = new ArImmersiveOverlay(); mArImmersiveOverlay = new ArImmersiveOverlay();
sActiveSessionInstance = this; sActiveSessionInstance = this;
mArImmersiveOverlay.show(((TabImpl) tab).getActivity(), this, useOverlay); mArImmersiveOverlay.show((ChromeActivity) TabUtils.getActivity(tab), this, useOverlay);
} }
@CalledByNative @CalledByNative
......
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