From: Serg Date: Tue, 31 Jan 2017 22:12:27 -0500 Subject: Add exit menu item Corrected Exit functionality --- chrome/android/java/res/menu/main_menu.xml | 4 ++++ chrome/android/java/res/menu/main_menu_regroup.xml | 3 +++ .../src/org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++ .../chrome/browser/init/ChromeLifetimeController.java | 6 +++++- .../browser/ui/android/strings/android_chrome_strings.grd | 3 +++ 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml @@ -119,6 +119,8 @@ android:icon="@drawable/vr_headset" /> + @@ -142,6 +144,8 @@ + diff --git a/chrome/android/java/res/menu/main_menu_regroup.xml b/chrome/android/java/res/menu/main_menu_regroup.xml --- a/chrome/android/java/res/menu/main_menu_regroup.xml +++ b/chrome/android/java/res/menu/main_menu_regroup.xml @@ -152,6 +152,9 @@ android:icon="@drawable/vr_headset" /> + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java @@ -55,6 +55,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.AppHooks; +import org.chromium.chrome.browser.ApplicationLifetime; import org.chromium.chrome.browser.ChromeActivitySessionTracker; import org.chromium.chrome.browser.ChromeApplication; import org.chromium.chrome.browser.ChromeWindow; @@ -1923,6 +1924,11 @@ public abstract class ChromeActivity RecordUserAction.record("MobileMenuSettings"); } + if (id == R.id.exit_id) { + ApplicationLifetime.terminate(false); + return true; + } + if (id == R.id.update_menu_id) { UpdateMenuItemHelper.getInstance().onMenuItemClicked(this); return true; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java @@ -82,7 +82,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer, // Kick off a timer to kill the process after a delay, which fires only if the Activities // take too long to be finished. - mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS); + if (restart) { + mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS); + } else { + fireBrowserRestartActivityIntent(); + } } @Override diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd @@ -2835,6 +2835,9 @@ Data from your Incognito session will only be cleared from Chrome when you Settings + + Exit + Close all tabs -- 2.17.1