blob: 478e4b9ef9a1caa00a7c0995bfe732af9c6a43b7 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_LENS_LENS_URL_UTILS_H_
#define COMPONENTS_LENS_LENS_URL_UTILS_H_
#include <array>
#include <map>
#include <string>
#include <vector>
#include "components/lens/lens_entrypoints.h"
#include "components/lens/lens_metadata.mojom.h"
#include "components/lens/lens_overlay_mime_type.h"
#include "third_party/lens_server_proto/lens_overlay_request_id.pb.h"
class GURL;
namespace lens {
// Query parameter for the search text query.
inline constexpr char kTextQueryParameterKey[] = "q";
// Query parameter for the payload.
inline constexpr char kPayloadQueryParameter[] = "p";
// Query parameter for the translate source language.
inline constexpr char kTranslateSourceQueryParameter[] = "sourcelang";
// Query parameter for the translate target language.
inline constexpr char kTranslateTargetQueryParameter[] = "targetlang";
// Query parameter for the filter type.
inline constexpr char kFilterTypeQueryParameter[] = "filtertype";
inline constexpr char kTranslateFilterTypeQueryParameterValue[] = "tr";
inline constexpr char kLensRequestQueryParameter[] = "vsrid";
inline constexpr char kUnifiedDrillDownQueryParameter[] = "udm";
inline constexpr char kLensSurfaceQueryParameter[] = "lns_surface";
inline constexpr char kContextualVisualInputTypeQueryParameterValue[] = "video";
inline constexpr char kPdfVisualInputTypeQueryParameterValue[] = "pdf";
inline constexpr char kImageVisualInputTypeQueryParameterValue[] = "img";
inline constexpr char kWebpageVisualInputTypeQueryParameterValue[] = "wp";
inline constexpr std::array<lens::MimeType, 3> kUnsupportedVitMimeTypes = {
lens::MimeType::kVideo, lens::MimeType::kAudio};
// Appends logs to query param as a string
void AppendLogsQueryParam(
std::string* query_string,
const std::vector<lens::mojom::LatencyLogPtr>& log_data);
// Returns a query string with all relevant query parameters. Needed for when a
// GURL is unavailable to append to.
std::string GetQueryParametersForLensRequest(EntryPoint ep);
// Returns true if the given URL corresponds to a Lens mWeb result page. This is
// done by checking the URL and its parameters.
bool IsLensMWebResult(const GURL& url);
std::string Base64EncodeRequestId(LensOverlayRequestId request_id);
std::string VitQueryParamValueForMimeType(MimeType mime_type);
// Returns a key-value map of all parameters in `url` except the query
// parameter.
std::map<std::string, std::string> GetParametersMapWithoutQuery(
const GURL& url);
} // namespace lens
#endif // COMPONENTS_LENS_LENS_URL_UTILS_H_