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
|
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_WEBUI_SEARCHBOX_LENS_SEARCHBOX_CLIENT_H_
#define CHROME_BROWSER_UI_WEBUI_SEARCHBOX_LENS_SEARCHBOX_CLIENT_H_
#include "components/lens/proto/server/lens_overlay_response.pb.h"
#include "components/omnibox/browser/autocomplete_match_type.h"
#include "components/sessions/core/session_id.h"
#include "third_party/metrics_proto/omnibox_event.pb.h"
#include "url/gurl.h"
// Interface that allows the Lens searchbox to interact with its embedder
// (i.e., LensOverlayController).
class LensSearchboxClient {
public:
LensSearchboxClient() = default;
virtual ~LensSearchboxClient() = default;
// Returns the URL of the current page in the WebContents.
virtual const GURL& GetPageURL() const = 0;
// Returns the current tab ID.
virtual SessionID GetTabId() const = 0;
// Returns the appropriate classification based on the current mode.
virtual metrics::OmniboxEventProto::PageClassification GetPageClassification()
const = 0;
// Returns the thumbnail data (data:image/) or address (chrome://image/).
virtual std::string& GetThumbnail() = 0;
// Returns the Lens autocomplete inputs. Used to report iil=, vsrid=,
// gsessionid=, and vsint= in the Suggest requests.
virtual const lens::proto::LensOverlaySuggestInputs& GetLensSuggestInputs()
const = 0;
// Called when the user modifies the text in any way (add, delete, paste,
// cut, etc.).
virtual void OnTextModified() = 0;
// Called when the user removes the thumbnail.
virtual void OnThumbnailRemoved() = 0;
// Called when a suggestion is accepted. Should open the given URL.
virtual void OnSuggestionAccepted(const GURL& destination_url,
AutocompleteMatchType::Type match_type,
bool is_zero_prefix_suggestion) = 0;
// Called when the user focuses or unfocuses the searchbox.
virtual void OnFocusChanged(bool focused) = 0;
// Called when the handler binds to the remote page, aka when SetPage is set.
virtual void OnPageBound() = 0;
// Called when autocomplete returns empty results on the last update or when
// the autocomplete stop timer triggers.
virtual void ShowGhostLoaderErrorState() = 0;
// Called when autocomplete returns zero suggest results.
virtual void OnZeroSuggestShown() = 0;
};
#endif // CHROME_BROWSER_UI_WEBUI_SEARCHBOX_LENS_SEARCHBOX_CLIENT_H_
|