Add-exit-menu-item.patch 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. From: Serg <serg.zhukovsky@gmail.com>
  2. Date: Tue, 31 Jan 2017 22:12:27 -0500
  3. Subject: Add exit menu item
  4. Corrected Exit functionality
  5. ---
  6. chrome/android/java/res/menu/main_menu.xml | 4 ++++
  7. .../src/org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++
  8. .../chrome/browser/init/ChromeLifetimeController.java | 6 +++++-
  9. .../browser/ui/android/strings/android_chrome_strings.grd | 3 +++
  10. 4 files changed, 18 insertions(+), 1 deletion(-)
  11. diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
  12. --- a/chrome/android/java/res/menu/main_menu.xml
  13. +++ b/chrome/android/java/res/menu/main_menu.xml
  14. @@ -116,6 +116,8 @@
  15. android:icon="@drawable/vr_headset" />
  16. <item android:id="@+id/managed_by_menu_id"
  17. android:title="@string/managed" />
  18. + <item android:id="@+id/exit_id"
  19. + android:title="@string/menu_exit" />
  20. </group>
  21. <!-- Items shown only in the tab switcher -->
  22. @@ -139,6 +141,8 @@
  23. <item android:id="@id/preferences_id"
  24. android:title="@string/menu_settings"
  25. android:icon="@drawable/settings_cog" />
  26. + <item android:id="@+id/exit_id"
  27. + android:title="@string/menu_exit" />
  28. </group>
  29. <!-- Items shown only in the tab switcher when start surface is enabled -->
  30. 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
  31. --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
  32. +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
  33. @@ -53,6 +53,7 @@ import org.chromium.base.supplier.ObservableSupplierImpl;
  34. import org.chromium.chrome.R;
  35. import org.chromium.chrome.browser.ActivityTabProvider;
  36. import org.chromium.chrome.browser.AppHooks;
  37. +import org.chromium.chrome.browser.ApplicationLifetime;
  38. import org.chromium.chrome.browser.ChromeActivitySessionTracker;
  39. import org.chromium.chrome.browser.ChromeApplication;
  40. import org.chromium.chrome.browser.ChromeVersionInfo;
  41. @@ -1874,6 +1875,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  42. RecordUserAction.record("MobileMenuSettings");
  43. }
  44. + if (id == R.id.exit_id) {
  45. + ApplicationLifetime.terminate(false);
  46. + return true;
  47. + }
  48. +
  49. if (id == R.id.update_menu_id) {
  50. UpdateMenuItemHelper.getInstance().onMenuItemClicked(this);
  51. return true;
  52. 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
  53. --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
  54. +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
  55. @@ -82,7 +82,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer,
  56. // Kick off a timer to kill the process after a delay, which fires only if the Activities
  57. // take too long to be finished.
  58. - mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS);
  59. + if (restart) {
  60. + mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS);
  61. + } else {
  62. + fireBrowserRestartActivityIntent();
  63. + }
  64. }
  65. @Override
  66. diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
  67. --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
  68. +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
  69. @@ -2698,6 +2698,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
  70. <message name="IDS_MENU_SETTINGS" desc="Menu item for opening browser settings. [CHAR-LIMIT=27]">
  71. Settings
  72. </message>
  73. + <message name="IDS_MENU_EXIT" desc="Menu item for exit browser. [CHAR-LIMIT=27]">
  74. + Exit
  75. + </message>
  76. <message name="IDS_MENU_CLOSE_ALL_TABS" desc="Menu item for closing all open tabs. [CHAR-LIMIT=27]">
  77. Close all tabs
  78. </message>
  79. --
  80. 2.17.1