Add-exit-menu-item.patch 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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/ChromeActivity.java | 7 +++++++
  8. .../chrome/browser/init/ChromeLifetimeController.java | 6 +++++-
  9. .../browser/ui/android/strings/android_chrome_strings.grd | 3 +++
  10. 4 files changed, 19 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. @@ -87,6 +87,8 @@
  15. android:title="@string/menu_help" />
  16. <item android:id="@+id/enter_vr_id"
  17. android:title="@string/enter_vr" />
  18. + <item android:id="@+id/exit_id"
  19. + android:title="@string/menu_exit" />
  20. </group>
  21. <!-- Items shown only in the tab switcher -->
  22. @@ -104,6 +106,8 @@
  23. android:title="@string/menu_group_tabs" />
  24. <item android:id="@id/preferences_id"
  25. android:title="@string/menu_settings" />
  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/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
  31. --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
  32. +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
  33. @@ -1920,6 +1920,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  34. RecordUserAction.record("MobileMenuSettings");
  35. }
  36. + if (id == R.id.exit_id) {
  37. + ApplicationLifetime.terminate(false);
  38. + return true;
  39. + }
  40. +
  41. if (id == R.id.update_menu_id) {
  42. UpdateMenuItemHelper.getInstance().onMenuItemClicked(this);
  43. return true;
  44. @@ -1996,6 +2001,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  45. AddToHomescreenCoordinator.showForAppMenu(
  46. this, getWindowAndroid(), getModalDialogManager(), currentTab.getWebContents());
  47. RecordUserAction.record("MobileMenuAddToHomescreen");
  48. + } else if (id == R.id.exit_id) {
  49. + ApplicationLifetime.terminate(false);
  50. } else if (id == R.id.open_webapk_id) {
  51. Context context = ContextUtils.getApplicationContext();
  52. String packageName =
  53. 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
  54. --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
  55. +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
  56. @@ -82,7 +82,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer,
  57. // Kick off a timer to kill the process after a delay, which fires only if the Activities
  58. // take too long to be finished.
  59. - mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS);
  60. + if (restart) {
  61. + mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS);
  62. + } else {
  63. + fireBrowserRestartActivityIntent();
  64. + }
  65. }
  66. @Override
  67. diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
  68. --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
  69. +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
  70. @@ -2413,6 +2413,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
  71. <message name="IDS_MENU_SETTINGS" desc="Menu item for opening browser settings. [CHAR-LIMIT=27]">
  72. Settings
  73. </message>
  74. + <message name="IDS_MENU_EXIT" desc="Menu item for exit browser. [CHAR-LIMIT=27]">
  75. + Exit
  76. + </message>
  77. <message name="IDS_MENU_CLOSE_ALL_TABS" desc="Menu item for closing all open tabs. [CHAR-LIMIT=27]">
  78. Close all tabs
  79. </message>
  80. --
  81. 2.17.1