// Copyright 2014 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_OMNIBOX_BROWSER_SUGGESTION_ANSWER_H_ #define COMPONENTS_OMNIBOX_BROWSER_SUGGESTION_ANSWER_H_ #include <memory> #include <optional> #include <string> #include <vector> #include "base/gtest_prod_util.h" #include "base/memory/ptr_util.h" #include "base/values.h" #include "build/build_config.h" #include "third_party/omnibox_proto/answer_data.pb.h" #include "third_party/omnibox_proto/answer_type.pb.h" #include "third_party/omnibox_proto/rich_answer_template.pb.h" #include "url/gurl.h" #if BUILDFLAG(IS_ANDROID) #include "base/android/scoped_java_ref.h" #endif namespace omnibox::answer_data_parser { // These values are named and numbered to match a specification at go/ais_api. // The values are only used for answer results. // // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.omnibox // GENERATED_JAVA_CLASS_NAME_OVERRIDE: AnswerTextType enum TextType { … }; GURL GetFormattedURL(const std::string* url_string); bool ParseJsonToAnswerData(const base::Value::Dict& answer_json, omnibox::RichAnswerTemplate* answer_template); // Logs which answer type was used (if any) at the time a user used the // omnibox to go somewhere. void LogAnswerUsed(omnibox::AnswerType answer_type); } // namespace omnibox::answer_data_parser // Structured representation of the JSON payload of a suggestion with an answer. // An answer has exactly two image lines, so called because they are a // combination of text and an optional image URL. Each image line has 1 or more // text fields, each of which is required to contain a string and an integer // type. The text fields are contained in a non-empty vector and three optional // named properties, referred to as `additional text`, `status text`, and // `accessibility label`. // // When represented in the UI, these elements should be styled and laid out // according to the specification at https://goto.google.com/ais_api. class SuggestionAnswer { … }; #endif // COMPONENTS_OMNIBOX_BROWSER_SUGGESTION_ANSWER_H_