Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2765)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java

Issue 1337113007: Stop unfreezing tabs "frozen" for lazy loads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
index d9f07392501309ecc0707ec4e864757ad68554aa..d400bdf0505ebc60877846e302bd4e81e185471a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -761,36 +761,50 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@SuppressLint("NewApi")
@Override
protected final void onDestroy() {
- if (mReaderModeActivityDelegate != null) mReaderModeActivityDelegate.destroy();
- if (mContextualSearchManager != null) mContextualSearchManager.destroy();
- if (mTabModelSelectorTabObserver != null) mTabModelSelectorTabObserver.destroy();
+ if (mReaderModeActivityDelegate != null) {
+ mReaderModeActivityDelegate.destroy();
+ mReaderModeActivityDelegate = null;
+ }
+
+ if (mContextualSearchManager != null) {
+ mContextualSearchManager.destroy();
+ mContextualSearchManager = null;
+ }
+
+ if (mTabModelSelectorTabObserver != null) {
+ mTabModelSelectorTabObserver.destroy();
+ mTabModelSelectorTabObserver = null;
+ }
+
if (mCompositorViewHolder != null) {
if (mCompositorViewHolder.getLayoutManager() != null) {
mCompositorViewHolder.getLayoutManager().removeSceneChangeObserver(this);
}
mCompositorViewHolder.shutDown();
+ mCompositorViewHolder = null;
}
+
onDestroyInternal();
+ if (mToolbarManager != null) {
+ mToolbarManager.destroy();
+ mToolbarManager = null;
+ }
+
TabModelSelector selector = getTabModelSelector();
if (selector != null) selector.destroy();
- if (mWindowAndroid != null) mWindowAndroid.destroy();
- if (!Locale.getDefault().equals(mCurrentLocale)) {
- // This is a hack to relaunch renderer processes. Killing the main process also kills
- // its dependent (renderer) processes, and Android's activity manager service seems to
- // still relaunch the activity even when process dies in onDestroy().
- // This shouldn't be moved to ChromeActivity since it may cause a crash if
- // you kill the process from EmbedContentViewActivity since Preferences looks up
- // ChildAccountManager#hasChildAccount() when it is not set.
- // TODO(changwan): Implement a more generic and safe relaunch mechanism such as
- // killing dependent processes on onDestroy and launching them at onCreate().
- Log.w(TAG, "Forcefully killing process...");
- Process.killProcess(Process.myPid());
+ if (mWindowAndroid != null) {
+ mWindowAndroid.destroy();
+ mWindowAndroid = null;
}
+
getChromeApplication().removePolicyChangeListener(this);
- if (mTabContentManager != null) mTabContentManager.destroy();
- if (mTabModelSelectorTabObserver != null) mTabModelSelectorTabObserver.destroy();
+
+ if (mTabContentManager != null) {
+ mTabContentManager.destroy();
+ mTabContentManager = null;
+ }
AccessibilityManager manager = (AccessibilityManager)
getBaseContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
@@ -798,7 +812,18 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
manager.removeTouchExplorationStateChangeListener(mTouchExplorationStateChangeListener);
}
+
super.onDestroy();
+
+ if (!Locale.getDefault().equals(mCurrentLocale)) {
+ // This is a hack to relaunch renderer processes. Killing the main process also kills
+ // its dependent (renderer) processes, and Android's activity manager service seems to
+ // still relaunch the activity even when process dies in onDestroy().
+ // TODO(changwan): Implement a more generic and safe relaunch mechanism, like killing
+ // dependent processes in onDestroy() and launching them at onCreate().
+ Log.w(TAG, "Forcefully killing process...");
+ Process.killProcess(Process.myPid());
+ }
}
/**
@@ -810,7 +835,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
* by the {@link WindowAndroid}.
*/
protected void onDestroyInternal() {
- if (mToolbarManager != null) mToolbarManager.destroy();
}
/**
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698