Commit bd51c9ad authored by Alan Cutter's avatar Alan Cutter Committed by Commit Bot

Fix missing ampersands in web app names when using them in menu item labels

Ampersands are used to indicate mnemonics in menu items. We must escape
real ampersands before using them in menu item labels.

Before:
https://bugs.chromium.org/p/chromium/issues/attachment?aid=457370&signed_aid=NdbKLbBf4ZUuOW9VvGbKOQ==&inline=1
https://bugs.chromium.org/p/chromium/issues/attachment?aid=457372&signed_aid=kcRyF6PZEi7SyoW3L6hG8A==&inline=1

After:
https://bugs.chromium.org/p/chromium/issues/attachment?aid=457369&signed_aid=AIbAsCPsbM2MYSHtCskv7g==&inline=1
https://bugs.chromium.org/p/chromium/issues/attachment?aid=457371&signed_aid=NJP9QClLhZVOh5d-lP4piQ==&inline=1

Bug: 1106668
Change-Id: Ia3fe2950218ba3e227c588c74e4031a5edb210e4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2309830
Auto-Submit: Alan Cutter <alancutter@chromium.org>
Reviewed-by: default avatarMichael Wasserman <msw@chromium.org>
Commit-Queue: Michael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#790620}
parent 6a78ceb3
...@@ -69,6 +69,7 @@ ...@@ -69,6 +69,7 @@
#include "content/public/browser/navigation_entry.h" #include "content/public/browser/navigation_entry.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "content/public/common/profiling.h" #include "content/public/common/profiling.h"
#include "ui/base/accelerators/menu_label_accelerator_util.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/base/layout.h" #include "ui/base/layout.h"
#include "ui/base/models/button_menu_item_model.h" #include "ui/base/models/button_menu_item_model.h"
...@@ -134,7 +135,8 @@ base::Optional<base::string16> GetInstallPWAAppMenuItemName(Browser* browser) { ...@@ -134,7 +135,8 @@ base::Optional<base::string16> GetInstallPWAAppMenuItemName(Browser* browser) {
banners::AppBannerManager::GetInstallableWebAppName(web_contents); banners::AppBannerManager::GetInstallableWebAppName(web_contents);
if (app_name.empty()) if (app_name.empty())
return base::nullopt; return base::nullopt;
return l10n_util::GetStringFUTF16(IDS_INSTALL_TO_OS_LAUNCH_SURFACE, app_name); return l10n_util::GetStringFUTF16(IDS_INSTALL_TO_OS_LAUNCH_SURFACE,
ui::EscapeMenuLabelAmpersands(app_name));
} }
} // namespace } // namespace
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "chrome/grit/chromium_strings.h" #include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h" #include "chrome/grit/generated_resources.h"
#include "components/strings/grit/components_strings.h" #include "components/strings/grit/components_strings.h"
#include "ui/base/accelerators/menu_label_accelerator_util.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/base/models/image_model.h" #include "ui/base/models/image_model.h"
#include "url/gurl.h" #include "url/gurl.h"
...@@ -73,7 +74,8 @@ void WebAppMenuModel::Build() { ...@@ -73,7 +74,8 @@ void WebAppMenuModel::Build() {
AddItem(kUninstallAppCommandId, AddItem(kUninstallAppCommandId,
l10n_util::GetStringFUTF16( l10n_util::GetStringFUTF16(
IDS_UNINSTALL_FROM_OS_LAUNCH_SURFACE, IDS_UNINSTALL_FROM_OS_LAUNCH_SURFACE,
browser()->app_controller()->GetAppShortName())); ui::EscapeMenuLabelAmpersands(
browser()->app_controller()->GetAppShortName())));
} }
#endif // !defined(OS_CHROMEOS) #endif // !defined(OS_CHROMEOS)
AddSeparator(ui::LOWER_SEPARATOR); AddSeparator(ui::LOWER_SEPARATOR);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment