Commit 67b3b7aa authored by Matt Giuca's avatar Matt Giuca Committed by Commit Bot

Refactor link context menu code to avoid duplication.

Instead of two separate code paths for when the Desktop PWAs flag is
enabled/disabled, it's now a single code path that makes a few
behavioural changes depending on the status of that flag.

Bug: 907298
Change-Id: I6b449fd65390d631098b2bc58e6c1ea668d5fd41
Reviewed-on: https://chromium-review.googlesource.com/c/1345753Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
Commit-Queue: Matt Giuca <mgiuca@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610323}
parent 5a003d5c
......@@ -1029,43 +1029,31 @@ void RenderViewContextMenu::AppendDevtoolsForUnpackedExtensions() {
void RenderViewContextMenu::AppendLinkItems() {
if (!params_.link_url.is_empty()) {
if (base::FeatureList::IsEnabled(features::kDesktopPWAWindowing)) {
const Browser* browser = GetBrowser();
const bool is_app = browser && browser->is_app();
AppendOpenInBookmarkAppLinkItems();
menu_model_.AddItemWithStringId(
IDC_CONTENT_CONTEXT_OPENLINKNEWTAB,
is_app ? IDS_CONTENT_CONTEXT_OPENLINKNEWTAB_INAPP
: IDS_CONTENT_CONTEXT_OPENLINKNEWTAB);
if (!is_app) {
menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW,
IDS_CONTENT_CONTEXT_OPENLINKNEWWINDOW);
}
if (params_.link_url.is_valid()) {
AppendProtocolHandlerSubMenu();
}
const Browser* browser = GetBrowser();
const bool in_app =
base::FeatureList::IsEnabled(features::kDesktopPWAWindowing) &&
browser && browser->is_app();
menu_model_.AddItemWithStringId(
IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD,
is_app ? IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD_INAPP
: IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD);
AppendOpenInBookmarkAppLinkItems();
} else {
menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB,
IDS_CONTENT_CONTEXT_OPENLINKNEWTAB);
menu_model_.AddItemWithStringId(
IDC_CONTENT_CONTEXT_OPENLINKNEWTAB,
in_app ? IDS_CONTENT_CONTEXT_OPENLINKNEWTAB_INAPP
: IDS_CONTENT_CONTEXT_OPENLINKNEWTAB);
if (!in_app) {
menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW,
IDS_CONTENT_CONTEXT_OPENLINKNEWWINDOW);
if (params_.link_url.is_valid()) {
AppendProtocolHandlerSubMenu();
}
}
menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD,
IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD);
if (params_.link_url.is_valid()) {
AppendProtocolHandlerSubMenu();
}
menu_model_.AddItemWithStringId(
IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD,
in_app ? IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD_INAPP
: IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD);
AppendOpenWithLinkItems();
// While ChromeOS supports multiple profiles, only one can be open at a
......@@ -1187,6 +1175,9 @@ void RenderViewContextMenu::AppendSmartSelectionActionItems() {
}
void RenderViewContextMenu::AppendOpenInBookmarkAppLinkItems() {
if (!base::FeatureList::IsEnabled(features::kDesktopPWAWindowing))
return;
const Extension* pwa = extensions::util::GetInstalledPwaForUrl(
browser_context_, params_.link_url);
if (!pwa)
......
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