Commit be56c613 authored by Mei Liang's avatar Mei Liang Committed by Commit Bot

Delete AssistStatusHandler and TabbedAssistStatusHandler

IncognitoTabSnapshotController sets FLAG_SECURE when viewing incognito
tabs. The AssistStatusHandler is no longer needed. This CL deletes the
AssistStatusHandler and TabbedAssistStatusHandler.

In addition, this CL deletes the #addOverviewModeObserverPreNative in
ChromeTabbedActivity, and renames #addOverviewModeObserverPostNative()
to #initJourneyManager().

Change-Id: I0a729e78089f48a810710b944af92cebeeb79ceb
Bug: 1108496
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2337496
Commit-Queue: Mei Liang <meiliang@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#800304}
parent 38d6bca2
...@@ -11,7 +11,6 @@ chrome_java_sources = [ ...@@ -11,7 +11,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/AppHooksModule.java", "java/src/org/chromium/chrome/browser/AppHooksModule.java",
"java/src/org/chromium/chrome/browser/AppIndexingUtil.java", "java/src/org/chromium/chrome/browser/AppIndexingUtil.java",
"java/src/org/chromium/chrome/browser/ApplicationLifetime.java", "java/src/org/chromium/chrome/browser/ApplicationLifetime.java",
"java/src/org/chromium/chrome/browser/AssistStatusHandler.java",
"java/src/org/chromium/chrome/browser/BrowserRestartActivity.java", "java/src/org/chromium/chrome/browser/BrowserRestartActivity.java",
"java/src/org/chromium/chrome/browser/ChromeAccessorActivity.java", "java/src/org/chromium/chrome/browser/ChromeAccessorActivity.java",
"java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java", "java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java",
......
// Copyright 2015 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;
import android.app.Activity;
import android.os.Build;
import android.view.View;
import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* Handler for tracking and updating the assist status for a given activity.
*/
public class AssistStatusHandler {
private final Activity mActivity;
private final TabModelSelectorObserver mSelectorObserver;
private Boolean mAssistSupported;
private TabModelSelector mTabModelSelector;
private Method mSetAssistBlockedMethod;
/**
* Builds an assist status handler for the specified activity.
* @param activity The activity whose assist status should be updated.
*/
public AssistStatusHandler(Activity activity) {
mActivity = activity;
mSelectorObserver = new EmptyTabModelSelectorObserver() {
@Override
public void onChange() {
updateAssistState();
}
};
}
/**
* Set the selector that the assist handler should track for tab updates.
* @param selector The selector broadcasting tab updates for the activity associated with
* this handler.
*/
public void setTabModelSelector(TabModelSelector selector) {
if (mTabModelSelector != null) {
mTabModelSelector.removeObserver(mSelectorObserver);
}
mTabModelSelector = selector;
if (mTabModelSelector != null) {
mTabModelSelector.addObserver(mSelectorObserver);
}
updateAssistState();
}
/**
* Destroy the handler and removes any remaining dependencies.
*/
public void destroy() {
if (mTabModelSelector != null) {
mTabModelSelector.removeObserver(mSelectorObserver);
mTabModelSelector = null;
}
}
/**
* @return Whether assist is currently supported based on the Activity state.
*/
public boolean isAssistSupported() {
return mTabModelSelector == null || !mTabModelSelector.isIncognitoSelected();
}
/**
* Trigger an update of the assist state.
*/
public final void updateAssistState() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return;
boolean isAssistSupported = isAssistSupported();
if (mAssistSupported == null || mAssistSupported != isAssistSupported) {
if (mSetAssistBlockedMethod == null) {
try {
mSetAssistBlockedMethod =
View.class.getMethod("setAssistBlocked", boolean.class);
} catch (NoSuchMethodException e) {
return;
}
}
View rootContent = mActivity.findViewById(android.R.id.content);
try {
mSetAssistBlockedMethod.invoke(rootContent, !isAssistSupported);
} catch (IllegalAccessException | IllegalArgumentException
| InvocationTargetException e) {
return;
}
}
mAssistSupported = isAssistSupported;
}
}
\ No newline at end of file
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
package org.chromium.chrome.browser; package org.chromium.chrome.browser;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.app.Activity;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
...@@ -58,7 +57,6 @@ import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier; ...@@ -58,7 +57,6 @@ import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver;
import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager; import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
...@@ -289,7 +287,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -289,7 +287,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
private final ObservableSupplierImpl<OverviewModeBehavior> mOverviewModeBehaviorSupplier = private final ObservableSupplierImpl<OverviewModeBehavior> mOverviewModeBehaviorSupplier =
new ObservableSupplierImpl<>(); new ObservableSupplierImpl<>();
private OverviewModeController mOverviewModeController; private OverviewModeController mOverviewModeController;
private OverviewModeBehavior.OverviewModeObserver mOverviewModeObserver;
private ObservableSupplierImpl<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier = private ObservableSupplierImpl<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier =
new ObservableSupplierImpl<>(); new ObservableSupplierImpl<>();
...@@ -317,22 +314,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -317,22 +314,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
} }
}; };
private class TabbedAssistStatusHandler extends AssistStatusHandler {
public TabbedAssistStatusHandler(Activity activity) {
super(activity);
}
@Override
public boolean isAssistSupported() {
// If we are in the tab switcher and any incognito tabs are present, disable assist.
if (isInOverviewMode() && mTabModelSelectorImpl != null
&& mTabModelSelectorImpl.getModel(true).getCount() > 0) {
return false;
}
return super.isAssistSupported();
}
}
/** /**
* Return whether the passed in component name matches any of the supported tabbed mode * Return whether the passed in component name matches any of the supported tabbed mode
* activities. * activities.
...@@ -580,6 +561,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -580,6 +561,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
} }
mLayoutManager = new LayoutManagerChromePhone( mLayoutManager = new LayoutManagerChromePhone(
compositorViewHolder, mContentContainer, mStartSurface); compositorViewHolder, mContentContainer, mStartSurface);
mOverviewModeController = mLayoutManager;
mOverviewModeBehaviorSupplier.set(mOverviewModeController);
} }
} }
...@@ -590,6 +573,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -590,6 +573,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
"ChromeTabbedActivity.setupCompositorContentPreNativeForTablet")) { "ChromeTabbedActivity.setupCompositorContentPreNativeForTablet")) {
mLayoutManager = mLayoutManager =
new LayoutManagerChromeTablet(getCompositorViewHolder(), mContentContainer); new LayoutManagerChromeTablet(getCompositorViewHolder(), mContentContainer);
mOverviewModeController = mLayoutManager;
mOverviewModeBehaviorSupplier.set(mOverviewModeController);
} }
} }
...@@ -725,41 +710,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -725,41 +710,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
} }
} }
private void addOverviewModeObserverPreNative() { private void initJourneyManager() {
try (TraceEvent e = TraceEvent.scoped( assert mOverviewModeController != null;
"ChromeTabbedActivity.addOverviewModeObserverPreNative")) {
mOverviewModeController = mLayoutManager;
mOverviewModeBehaviorSupplier.set(mOverviewModeController);
// TODO(crbug.com/1108496): Move this to the assistant code.
mOverviewModeObserver = new EmptyOverviewModeObserver() {
@Override
public void onOverviewModeStartedShowing(boolean showToolbar) {
if (getAssistStatusHandler() != null) {
getAssistStatusHandler().updateAssistState();
}
}
@Override
public void onOverviewModeFinishedHiding() {
if (getAssistStatusHandler() != null) {
getAssistStatusHandler().updateAssistState();
}
}
};
mOverviewModeController.addOverviewModeObserver(mOverviewModeObserver);
}
}
private void addOverviewModeObserverPostNative() {
try (TraceEvent e = TraceEvent.scoped(
"ChromeTabbedActivity.addOverviewModeObserverPostNative")) {
if (mOverviewModeObserver == null) {
addOverviewModeObserverPreNative();
}
// TODO(crbug.com/1108496): This does not seem to be related to OverviewMode. Move this try (TraceEvent e = TraceEvent.scoped("ChromeTabbedActivity.initJourneyManager")) {
// to a proper place.
if (ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_ENGAGEMENT_REPORTING_ANDROID)) { if (ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_ENGAGEMENT_REPORTING_ANDROID)) {
// The lifecycle of this object is managed by the lifecycle dispatcher. // The lifecycle of this object is managed by the lifecycle dispatcher.
new JourneyManager(getTabModelSelector(), getLifecycleDispatcher(), new JourneyManager(getTabModelSelector(), getLifecycleDispatcher(),
...@@ -810,7 +764,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -810,7 +764,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
PostTask.postTask(UiThreadTaskTraits.DEFAULT, PostTask.postTask(UiThreadTaskTraits.DEFAULT,
this::maybeGetFeedAppLifecycleAndMaybeCreatePageViewObserver); this::maybeGetFeedAppLifecycleAndMaybeCreatePageViewObserver);
PostTask.postTask(UiThreadTaskTraits.DEFAULT, this::addOverviewModeObserverPostNative); PostTask.postTask(UiThreadTaskTraits.DEFAULT, this::initJourneyManager);
PostTask.postTask(UiThreadTaskTraits.DEFAULT, this::finishNativeInitialization); PostTask.postTask(UiThreadTaskTraits.DEFAULT, this::finishNativeInitialization);
ChromeAccessibilityUtil.get().addObserver(this); ChromeAccessibilityUtil.get().addObserver(this);
} }
...@@ -970,11 +924,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -970,11 +924,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
.getToolbarButtonInProductHelpController(); .getToolbarButtonInProductHelpController();
} }
@Override
protected AssistStatusHandler createAssistStatusHandler() {
return new TabbedAssistStatusHandler(this);
}
private void handleDebugIntent(Intent intent) { private void handleDebugIntent(Intent intent) {
if (ACTION_CLOSE_TABS.equals(intent.getAction())) { if (ACTION_CLOSE_TABS.equals(intent.getAction())) {
getTabModelSelector().closeAllTabs(); getTabModelSelector().closeAllTabs();
...@@ -1553,7 +1502,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -1553,7 +1502,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
TraceEvent.scoped("ChromeTabbedActivity.prepareToShowStartPagePreNative")) { TraceEvent.scoped("ChromeTabbedActivity.prepareToShowStartPagePreNative")) {
setupCompositorContentPreNativeForPhone(); setupCompositorContentPreNativeForPhone();
getCompositorViewHolder().setLayoutManager(mLayoutManager); getCompositorViewHolder().setLayoutManager(mLayoutManager);
addOverviewModeObserverPreNative();
if (shouldShowTabSwitcherOnStart()) { if (shouldShowTabSwitcherOnStart()) {
mLayoutManager.setTabModelSelector(mTabModelSelectorImpl); mLayoutManager.setTabModelSelector(mTabModelSelectorImpl);
...@@ -2085,10 +2033,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -2085,10 +2033,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mCallbackController = null; mCallbackController = null;
} }
if (mOverviewModeController != null && mOverviewModeObserver != null) {
mOverviewModeController.removeOverviewModeObserver(mOverviewModeObserver);
}
if (mTabModelSelectorTabObserver != null) { if (mTabModelSelectorTabObserver != null) {
mTabModelSelectorTabObserver.destroy(); mTabModelSelectorTabObserver.destroy();
mTabModelSelectorTabObserver = null; mTabModelSelectorTabObserver = null;
......
...@@ -53,7 +53,6 @@ import org.chromium.base.supplier.ObservableSupplierImpl; ...@@ -53,7 +53,6 @@ import org.chromium.base.supplier.ObservableSupplierImpl;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.AppHooks; import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.AssistStatusHandler;
import org.chromium.chrome.browser.ChromeActivitySessionTracker; import org.chromium.chrome.browser.ChromeActivitySessionTracker;
import org.chromium.chrome.browser.ChromeApplication; import org.chromium.chrome.browser.ChromeApplication;
import org.chromium.chrome.browser.ChromeVersionInfo; import org.chromium.chrome.browser.ChromeVersionInfo;
...@@ -289,8 +288,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -289,8 +288,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
private final ManualFillingComponent mManualFillingComponent = private final ManualFillingComponent mManualFillingComponent =
ManualFillingComponentFactory.createComponent(); ManualFillingComponentFactory.createComponent();
private AssistStatusHandler mAssistStatusHandler;
// See enableHardwareAcceleration() // See enableHardwareAcceleration()
private boolean mSetWindowHWA; private boolean mSetWindowHWA;
...@@ -431,14 +428,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -431,14 +428,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
mSnackbarManager = new SnackbarManager(this, bottomContainer, getWindowAndroid()); mSnackbarManager = new SnackbarManager(this, bottomContainer, getWindowAndroid());
SnackbarManagerProvider.attach(getWindowAndroid(), mSnackbarManager); SnackbarManagerProvider.attach(getWindowAndroid(), mSnackbarManager);
mAssistStatusHandler = createAssistStatusHandler();
if (mAssistStatusHandler != null) {
if (mTabModelSelector != null) {
mAssistStatusHandler.setTabModelSelector(mTabModelSelector);
}
mAssistStatusHandler.updateAssistState();
}
// Make the activity listen to policy change events // Make the activity listen to policy change events
CombinedPolicyProvider.get().addPolicyChangeListener(this); CombinedPolicyProvider.get().addPolicyChangeListener(this);
mDidAddPolicyChangeListener = true; mDidAddPolicyChangeListener = true;
...@@ -654,10 +643,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -654,10 +643,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
} }
}; };
if (mAssistStatusHandler != null) {
mAssistStatusHandler.setTabModelSelector(mTabModelSelector);
}
mTabModelsInitialized = true; mTabModelsInitialized = true;
} }
...@@ -710,20 +695,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -710,20 +695,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
getWindow().getDecorView(), null, mBookmarkBridgeSupplier); getWindow().getDecorView(), null, mBookmarkBridgeSupplier);
} }
/**
* @return The assist handler for this activity.
*/
protected AssistStatusHandler getAssistStatusHandler() {
return mAssistStatusHandler;
}
/**
* @return A newly constructed assist handler for this given activity type.
*/
protected AssistStatusHandler createAssistStatusHandler() {
return new AssistStatusHandler(this);
}
/** /**
* @return The resource id for the layout to use for {@link ControlContainer}. 0 by default. * @return The resource id for the layout to use for {@link ControlContainer}. 0 by default.
*/ */
...@@ -1181,12 +1152,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -1181,12 +1152,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@Override @Override
@TargetApi(Build.VERSION_CODES.M) @TargetApi(Build.VERSION_CODES.M)
public void onProvideAssistContent(AssistContent outContent) { public void onProvideAssistContent(AssistContent outContent) {
if (getAssistStatusHandler() == null || !getAssistStatusHandler().isAssistSupported()) {
// No information is provided in incognito mode.
return;
}
Tab tab = getActivityTab(); Tab tab = getActivityTab();
if (tab != null && !isInOverviewMode()) { // No information is provided in incognito mode and overview mode.
if (tab != null && !tab.isIncognito() && !isInOverviewMode()) {
outContent.setWebUri(Uri.parse(tab.getUrlString())); outContent.setWebUri(Uri.parse(tab.getUrlString()));
} }
} }
......
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