Skip to content

Commit

Permalink
Renaming Destroyable and destroy method
Browse files Browse the repository at this point in the history
In order to make space for Destroyable in base, this patch:
* Renames Destroyable lifecycle observer to DestroyableObserver
* Renames the #destroy() method to #onDestroy()
* LocationBar related classes are updated to not observe destruction
  through a lifecycle observer, because they can get that signal directly
  from their owners.

This creates space for a patch adding Destroyable to base:
https://chromium-review.googlesource.com/c/chromium/src/+/2809140

Bug: 1202150
Change-Id: Id41f623f0da69437201f12b31ee36367512ab59d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2857520
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Commit-Queue: Filip Gorski <fgorski@chromium.org>
Cr-Commit-Position: refs/heads/master@{#878026}
  • Loading branch information
fgorski authored and Chromium LUCI CQ committed Apr 30, 2021
1 parent f5f30db commit d319dfe
Show file tree
Hide file tree
Showing 47 changed files with 149 additions and 138 deletions.
Expand Up @@ -125,7 +125,7 @@ public void initWithNative(Context context, TabModelSelector tabModelSelector,
* Destroy any members that needs clean up.
*/
public void destroy() {
mTabListCoordinator.destroy();
mTabListCoordinator.onDestroy();
mMediator.destroy();
mModelChangeProcessor.destroy();
if (mTabSelectionEditorCoordinator != null) {
Expand Down
Expand Up @@ -209,7 +209,7 @@ public void destroy() {
// Early return if the component hasn't initialized yet.
if (mActivity == null) return;

mTabStripCoordinator.destroy();
mTabStripCoordinator.onDestroy();
if (mTabGridDialogCoordinator != null) {
mTabGridDialogCoordinator.destroy();
}
Expand Down
Expand Up @@ -24,7 +24,7 @@
import androidx.recyclerview.widget.RecyclerView;

import org.chromium.base.MathUtils;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
Expand All @@ -48,7 +48,7 @@
* Coordinator for showing UI for a list of tabs. Can be used in GRID or STRIP modes.
*/
public class TabListCoordinator
implements PriceMessageService.PriceWelcomeMessageProvider, Destroyable {
implements PriceMessageService.PriceWelcomeMessageProvider, DestroyObserver {
/**
* Modes of showing the list of tabs.
*
Expand Down Expand Up @@ -383,7 +383,7 @@ void postHiding() {
* Destroy any members that needs clean up.
*/
@Override
public void destroy() {
public void onDestroy() {
mMediator.destroy();
if (mGlobalLayoutListener != null) {
mRecyclerView.getViewTreeObserver().removeOnGlobalLayoutListener(mGlobalLayoutListener);
Expand Down
Expand Up @@ -212,7 +212,7 @@ TabSelectionEditorController getController() {
* Destroy any members that needs clean up.
*/
public void destroy() {
mTabListCoordinator.destroy();
mTabListCoordinator.onDestroy();
mTabSelectionEditorLayout.destroy();
mTabSelectionEditorMediator.destroy();
mTabSelectionEditorLayoutChangeProcessor.destroy();
Expand Down
Expand Up @@ -26,7 +26,7 @@
import org.chromium.chrome.browser.flags.CachedFeatureFlags;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher;
import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManager;
import org.chromium.chrome.browser.share.ShareDelegate;
Expand Down Expand Up @@ -55,7 +55,7 @@
* TabSwitcher UI.
*/
public class TabSwitcherCoordinator
implements Destroyable, TabSwitcher, TabSwitcher.TabListDelegate,
implements DestroyObserver, TabSwitcher, TabSwitcher.TabListDelegate,
TabSwitcherMediator.ResetHandler, TabSwitcherMediator.MessageItemsController,
TabSwitcherMediator.PriceWelcomeMessageController {
/**
Expand Down Expand Up @@ -615,10 +615,10 @@ public void softCleanup() {

// ResetHandler implementation.
@Override
public void destroy() {
public void onDestroy() {
mMenuOrKeyboardActionController.unregisterMenuOrKeyboardActionHandler(
mTabSwitcherMenuActionHandler);
mTabListCoordinator.destroy();
mTabListCoordinator.onDestroy();
mMessageCardProviderCoordinator.destroy();
mContainerViewChangeProcessor.destroy();
if (mTabGridDialogCoordinator != null) {
Expand Down
Expand Up @@ -18,7 +18,7 @@
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tasks.tab_management.suggestions.TabSuggestion.TabSuggestionAction;

Expand All @@ -33,7 +33,7 @@
* Represents the entry point for the TabSuggestions component. Responsible for
* registering and invoking the different {@link TabSuggestionsFetcher}.
*/
public class TabSuggestionsOrchestrator implements TabSuggestions, Destroyable {
public class TabSuggestionsOrchestrator implements TabSuggestions, DestroyObserver {
public static final String TAB_SUGGESTIONS_UMA_PREFIX = "TabSuggestionsOrchestrator";
private static final String LAST_TIMESTAMP_KEY = "LastTimestamp";
private static final String BACKOFF_COUNT_KEY = "BackoffCountKey";
Expand Down Expand Up @@ -130,7 +130,7 @@ protected static List<TabSuggestion> aggregateResults(List<TabSuggestion> tabSug
}

@Override
public void destroy() {
public void onDestroy() {
mTabContextObserver.destroy();
mActivityLifecycleDispatcher.unregister(this);
}
Expand Down
Expand Up @@ -144,7 +144,7 @@ public void testRegisterUnregister() {
mTabModelSelector, mDispatcher, new InMemorySharedPreferences());
tabSuggestionsOrchestrator.setFetchersForTesting();
verify(mDispatcher, times(1)).register(eq(tabSuggestionsOrchestrator));
tabSuggestionsOrchestrator.destroy();
tabSuggestionsOrchestrator.onDestroy();
verify(mDispatcher, times(1)).unregister(eq(tabSuggestionsOrchestrator));
}

Expand Down
Expand Up @@ -7,7 +7,7 @@
import androidx.annotation.VisibleForTesting;

import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver;
import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
Expand All @@ -17,7 +17,7 @@
* TODO(crbug.com/1081453): Split ChromeInactivityTracker out from ChromeTabbedActivity.
*/
public class ChromeInactivityTracker
implements StartStopWithNativeObserver, PauseResumeWithNativeObserver, Destroyable {
implements StartStopWithNativeObserver, PauseResumeWithNativeObserver, DestroyObserver {
private static final String TAG = "InactivityTracker";

private static final long UNKNOWN_LAST_BACKGROUNDED_TIME = -1;
Expand Down Expand Up @@ -94,7 +94,7 @@ public void onStopWithNative() {
}

@Override
public void destroy() {
public void onDestroy() {
mLifecycleDispatcher.unregister(this);
}
}
Expand Up @@ -16,7 +16,7 @@
import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabProvider;
import org.chromium.chrome.browser.dependency_injection.ActivityScope;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.components.embedder_support.util.Origin;
import org.chromium.components.externalauth.ExternalAuthUtils;
import org.chromium.content_public.browser.WebContents;
Expand All @@ -31,7 +31,7 @@
* Provides Trusted Web Activity specific behaviour for the {@link CurrentPageVerifier}.
*/
@ActivityScope
public class TwaVerifier implements Verifier, Destroyable {
public class TwaVerifier implements Verifier, DestroyObserver {
/** The Digital Asset Link relationship used for Trusted Web Activities. */
private static final int RELATIONSHIP = CustomTabsService.RELATION_HANDLE_ALL_URLS;

Expand Down Expand Up @@ -72,7 +72,7 @@ public TwaVerifier(ActivityLifecycleDispatcher lifecycleDispatcher,
}

@Override
public void destroy() {
public void onDestroy() {
mDestroyed = true;
}

Expand Down
Expand Up @@ -32,7 +32,7 @@
import org.chromium.chrome.browser.flags.CachedFeatureFlags;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.lifecycle.InflationObserver;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.url.GURL;
Expand All @@ -48,7 +48,7 @@
/** Shows and hides splash screen for Webapps, WebAPKs and TWAs. */
@ActivityScope
public class SplashController
extends CustomTabTabObserver implements InflationObserver, Destroyable {
extends CustomTabTabObserver implements InflationObserver, DestroyObserver {
private static class SingleShotOnDrawListener implements ViewTreeObserver.OnDrawListener {
private final View mView;
private final Runnable mAction;
Expand Down Expand Up @@ -197,7 +197,7 @@ public void onPostInflationStartup() {
}

@Override
public void destroy() {
public void onDestroy() {
if (mFadeOutAnimator != null) {
mFadeOutAnimator.cancel();
}
Expand Down
Expand Up @@ -21,7 +21,7 @@
import org.chromium.chrome.browser.dependency_injection.ActivityScope;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.lifecycle.NativeInitObserver;
import org.chromium.chrome.browser.profiles.OTRProfileID;
import org.chromium.chrome.browser.profiles.Profile;
Expand All @@ -35,7 +35,8 @@
* |isEnabledIncognitoCCT| returns true.
*/
@ActivityScope
public class CustomTabIncognitoManager implements NativeInitObserver, Destroyable, UnownedUserData {
public class CustomTabIncognitoManager
implements NativeInitObserver, DestroyObserver, UnownedUserData {
@SuppressLint("StaticFieldLeak") // This is for test only.
private static CustomTabIncognitoManager sCustomTabIncognitoManagerUsedForTesting;

Expand Down Expand Up @@ -117,7 +118,7 @@ public void onFinishNativeInitialization() {
}

@Override
public void destroy() {
public void onDestroy() {
if (mOTRProfileID != null) {
Profile.getLastUsedRegularProfile()
.getOffTheRecordProfile(mOTRProfileID, /*createIfNeeded=*/true)
Expand Down
Expand Up @@ -14,7 +14,7 @@
import org.chromium.base.IntentUtils;
import org.chromium.base.ObserverList;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.night_mode.NightModeStateProvider;
import org.chromium.chrome.browser.night_mode.NightModeUtils;
import org.chromium.chrome.browser.night_mode.PowerSavingModeMonitor;
Expand All @@ -23,7 +23,7 @@
/**
* Maintains and provides the night mode state for {@link CustomTabActivity}.
*/
public class CustomTabNightModeStateController implements Destroyable, NightModeStateProvider {
public class CustomTabNightModeStateController implements DestroyObserver, NightModeStateProvider {
private final ObserverList<Observer> mObservers = new ObserverList<>();
private final PowerSavingModeMonitor mPowerSavingModeMonitor;
private final SystemNightModeMonitor mSystemNightModeMonitor;
Expand Down Expand Up @@ -75,9 +75,9 @@ void initialize(AppCompatDelegate delegate, Intent intent) {
}
}

// Destroyable implementation.
// DestroyObserver implementation.
@Override
public void destroy() {
public void onDestroy() {
mSystemNightModeMonitor.removeObserver(mSystemNightModeObserver);
mPowerSavingModeMonitor.removeObserver(mPowerSaveModeObserver);
}
Expand Down
Expand Up @@ -23,7 +23,7 @@
import org.chromium.chrome.browser.customtabs.content.TabObserverRegistrar.CustomTabTabObserver;
import org.chromium.chrome.browser.dependency_injection.ActivityScope;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.lifecycle.NativeInitObserver;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.Tab;
Expand All @@ -43,7 +43,7 @@
* The task description is what is shown in Android's Overview/Recents screen for each entry.
*/
@ActivityScope
public class CustomTabTaskDescriptionHelper implements NativeInitObserver, Destroyable {
public class CustomTabTaskDescriptionHelper implements NativeInitObserver, DestroyObserver {
private final Activity mActivity;
private final CustomTabActivityTabProvider mTabProvider;
private final TabObserverRegistrar mTabObserverRegistrar;
Expand Down Expand Up @@ -297,7 +297,7 @@ private boolean usesSeparateTask() {
* Destroys all dependent components of the task description helper.
*/
@Override
public void destroy() {
public void onDestroy() {
if (mFaviconHelper != null) {
mFaviconHelper.destroy();
}
Expand Down
Expand Up @@ -8,7 +8,7 @@
import org.chromium.base.supplier.BooleanSupplier;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TrustedCdn.PublisherUrlVisibility;
import org.chromium.ui.base.WindowAndroid;
Expand All @@ -18,7 +18,7 @@
* the availability of publisher URL of trusted CDN when attached to a custom tab activity.
*/
class CustomTabTrustedCdnPublisherUrlVisibility
implements PublisherUrlVisibility, Destroyable, UnownedUserData {
implements PublisherUrlVisibility, DestroyObserver, UnownedUserData {
private WindowAndroid mWindowAndroid;
private BooleanSupplier mIsPublisherPackageForSession;

Expand All @@ -41,7 +41,7 @@ public boolean canShowPublisherUrl(Tab tab) {
}

@Override
public void destroy() {
public void onDestroy() {
PublisherUrlVisibility.detach(this);
mWindowAndroid = null;
mIsPublisherPackageForSession = null;
Expand Down
Expand Up @@ -338,7 +338,7 @@ private void finalizeCreatingTab(TabModelOrchestrator tabModelOrchestrator, TabM
tab = maybeTakeTabFromStartupTabPreloader();
if (tab != null) mode = TabCreationMode.FROM_STARTUP_TAB_PRELOADER;
} else {
mStartupTabPreloader.destroy();
mStartupTabPreloader.onDestroy();
}

if (tab == null) {
Expand Down
Expand Up @@ -9,7 +9,7 @@
import org.chromium.base.ObserverList;
import org.chromium.chrome.browser.dependency_injection.ActivityScope;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.metrics.PageLoadMetrics;
import org.chromium.chrome.browser.tab.EmptyTabObserver;
import org.chromium.chrome.browser.tab.Tab;
Expand All @@ -28,7 +28,7 @@
* they enter/leave the TabModel.
*/
@ActivityScope
public class TabObserverRegistrar implements TabModelObserver, Destroyable {
public class TabObserverRegistrar implements TabModelObserver, DestroyObserver {
private CustomTabActivityTabProvider mTabProvider;
private final Set<PageLoadMetrics.Observer> mPageLoadMetricsObservers = new HashSet<>();
private final Set<TabObserver> mTabObservers = new HashSet<>();
Expand Down Expand Up @@ -183,7 +183,7 @@ private void removeTabObservers(Tab tab, Iterator<? extends TabObserver> tabObse
}

@Override
public void destroy() {
public void onDestroy() {
removePageLoadMetricsObservers();
}

Expand Down
Expand Up @@ -19,7 +19,7 @@

import org.chromium.chrome.browser.dependency_injection.ActivityScope;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.DestroyObserver;
import org.chromium.chrome.browser.lifecycle.WindowFocusChangedObserver;

import javax.inject.Inject;
Expand All @@ -28,8 +28,7 @@
* Allows to enter and exit immersive mode in TWAs and WebAPKs.
*/
@ActivityScope
public class ImmersiveModeController implements WindowFocusChangedObserver, Destroyable {

public class ImmersiveModeController implements WindowFocusChangedObserver, DestroyObserver {
private static final int ENTER_IMMERSIVE_MODE_ON_WINDOW_FOCUS_DELAY_MILLIS = 300;
private static final int RESTORE_IMMERSIVE_MODE_DELAY_MILLIS = 3000;

Expand Down Expand Up @@ -131,7 +130,7 @@ public void onWindowFocusChanged(boolean hasFocus) {
}

@Override
public void destroy() {
public void onDestroy() {
mHandler.removeCallbacks(mUpdateImmersiveFlagsRunnable);
}
}

0 comments on commit d319dfe

Please sign in to comment.