1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/omnibox/browser/actions/contextual_search_action.h"
#include "components/omnibox/common/omnibox_feature_configs.h"
#include "components/strings/grit/components_strings.h"
#include "ui/base/l10n/l10n_util.h"
#if defined(SUPPORT_PEDALS_VECTOR_ICONS)
#include "build/branding_buildflags.h" // nogncheck
#include "components/omnibox/browser/vector_icons.h" // nogncheck
#include "components/vector_icons/vector_icons.h" // nogncheck
#endif
namespace {
int GetOpenLensActionLabelId() {
switch (omnibox_feature_configs::ContextualSearch::Get()
.alternative_action_label) {
case 1:
return IDS_CONTEXTUAL_SEARCH_OPEN_LENS_ACTION_LABEL_ALT;
case 2:
return IDS_CONTEXTUAL_SEARCH_OPEN_LENS_ACTION_LABEL_ALT2;
case 0:
default:
return IDS_CONTEXTUAL_SEARCH_OPEN_LENS_ACTION_LABEL;
}
}
} // namespace
ContextualSearchFulfillmentAction::ContextualSearchFulfillmentAction(
const GURL& url,
AutocompleteMatchType::Type match_type,
bool is_zero_prefix_suggestion)
: OmniboxAction(LabelStrings(), url),
match_type_(match_type),
is_zero_prefix_suggestion_(is_zero_prefix_suggestion) {}
void ContextualSearchFulfillmentAction::RecordActionShown(size_t position,
bool executed) const {
// TODO(crbug.com/403644258): Add UMA logging.
}
void ContextualSearchFulfillmentAction::Execute(
ExecutionContext& context) const {
// Delegate fulfillment to Lens.
context.client_->IssueContextualSearchRequest(url_, match_type_,
is_zero_prefix_suggestion_);
}
OmniboxActionId ContextualSearchFulfillmentAction::ActionId() const {
return OmniboxActionId::CONTEXTUAL_SEARCH_FULFILLMENT;
}
ContextualSearchFulfillmentAction::~ContextualSearchFulfillmentAction() =
default;
////////////////////////////////////////////////////////////////////////////////
ContextualSearchOpenLensAction::ContextualSearchOpenLensAction()
: OmniboxAction(OmniboxAction::LabelStrings(
l10n_util::GetStringUTF16(GetOpenLensActionLabelId()),
u"",
u"",
u""),
GURL()) {}
OmniboxActionId ContextualSearchOpenLensAction::ActionId() const {
return OmniboxActionId::CONTEXTUAL_SEARCH_OPEN_LENS;
}
void ContextualSearchOpenLensAction::Execute(ExecutionContext& context) const {
context.client_->OpenLensOverlay(/*show=*/true);
}
#if defined(SUPPORT_PEDALS_VECTOR_ICONS)
const gfx::VectorIcon& ContextualSearchOpenLensAction::GetVectorIcon() const {
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
return vector_icons::kGoogleLensMonochromeLogoIcon;
#else
return vector_icons::kSearchChromeRefreshIcon;
#endif
}
#endif // defined(SUPPORT_PEDALS_VECTOR_ICONS)
ContextualSearchOpenLensAction::~ContextualSearchOpenLensAction() = default;
|