| Index: components/autocomplete/search_suggestion_parser.h
|
| diff --git a/components/autocomplete/search_suggestion_parser.h b/components/autocomplete/search_suggestion_parser.h
|
| deleted file mode 100644
|
| index 264700ef8ebcc1921fb544a703140dadf8f9e39c..0000000000000000000000000000000000000000
|
| --- a/components/autocomplete/search_suggestion_parser.h
|
| +++ /dev/null
|
| @@ -1,291 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef COMPONENTS_AUTOCOMPLETE_SEARCH_SUGGESTION_PARSER_H_
|
| -#define COMPONENTS_AUTOCOMPLETE_SEARCH_SUGGESTION_PARSER_H_
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/strings/string16.h"
|
| -#include "components/autocomplete/autocomplete_match.h"
|
| -#include "components/autocomplete/autocomplete_match_type.h"
|
| -#include "url/gurl.h"
|
| -
|
| -class AutocompleteInput;
|
| -class AutocompleteSchemeClassifier;
|
| -
|
| -namespace base {
|
| -class DictionaryValue;
|
| -class Value;
|
| -}
|
| -
|
| -namespace net {
|
| -class URLFetcher;
|
| -}
|
| -
|
| -class SearchSuggestionParser {
|
| - public:
|
| - // The Result classes are intermediate representations of AutocompleteMatches,
|
| - // simply containing relevance-ranked search and navigation suggestions.
|
| - // They may be cached to provide some synchronous matches while requests for
|
| - // new suggestions from updated input are in flight.
|
| - // TODO(msw) Extend these classes to generate their corresponding matches and
|
| - // other requisite data, in order to consolidate and simplify the
|
| - // highly fragmented SearchProvider logic for each Result type.
|
| - class Result {
|
| - public:
|
| - Result(bool from_keyword_provider,
|
| - int relevance,
|
| - bool relevance_from_server,
|
| - AutocompleteMatchType::Type type,
|
| - const std::string& deletion_url);
|
| - virtual ~Result();
|
| -
|
| - bool from_keyword_provider() const { return from_keyword_provider_; }
|
| -
|
| - const base::string16& match_contents() const { return match_contents_; }
|
| - const ACMatchClassifications& match_contents_class() const {
|
| - return match_contents_class_;
|
| - }
|
| -
|
| - AutocompleteMatchType::Type type() const { return type_; }
|
| - int relevance() const { return relevance_; }
|
| - void set_relevance(int relevance) { relevance_ = relevance; }
|
| -
|
| - bool relevance_from_server() const { return relevance_from_server_; }
|
| - void set_relevance_from_server(bool relevance_from_server) {
|
| - relevance_from_server_ = relevance_from_server;
|
| - }
|
| -
|
| - const std::string& deletion_url() const { return deletion_url_; }
|
| -
|
| - // Returns the default relevance value for this result (which may
|
| - // be left over from a previous omnibox input) given the current
|
| - // input and whether the current input caused a keyword provider
|
| - // to be active.
|
| - virtual int CalculateRelevance(const AutocompleteInput& input,
|
| - bool keyword_provider_requested) const = 0;
|
| -
|
| - protected:
|
| - // The contents to be displayed and its style info.
|
| - base::string16 match_contents_;
|
| - ACMatchClassifications match_contents_class_;
|
| -
|
| - // True if the result came from the keyword provider.
|
| - bool from_keyword_provider_;
|
| -
|
| - AutocompleteMatchType::Type type_;
|
| -
|
| - // The relevance score.
|
| - int relevance_;
|
| -
|
| - private:
|
| - // Whether this result's relevance score was fully or partly calculated
|
| - // based on server information, and thus is assumed to be more accurate.
|
| - // This is ultimately used in
|
| - // SearchProvider::ConvertResultsToAutocompleteMatches(), see comments
|
| - // there.
|
| - bool relevance_from_server_;
|
| -
|
| - // Optional deletion URL provided with suggestions. Fetching this URL
|
| - // should result in some reasonable deletion behaviour on the server,
|
| - // e.g. deleting this term out of a user's server-side search history.
|
| - std::string deletion_url_;
|
| - };
|
| -
|
| - class SuggestResult : public Result {
|
| - public:
|
| - SuggestResult(const base::string16& suggestion,
|
| - AutocompleteMatchType::Type type,
|
| - const base::string16& match_contents,
|
| - const base::string16& match_contents_prefix,
|
| - const base::string16& annotation,
|
| - const base::string16& answer_contents,
|
| - const base::string16& answer_type,
|
| - const std::string& suggest_query_params,
|
| - const std::string& deletion_url,
|
| - bool from_keyword_provider,
|
| - int relevance,
|
| - bool relevance_from_server,
|
| - bool should_prefetch,
|
| - const base::string16& input_text);
|
| - virtual ~SuggestResult();
|
| -
|
| - const base::string16& suggestion() const { return suggestion_; }
|
| - const base::string16& match_contents_prefix() const {
|
| - return match_contents_prefix_;
|
| - }
|
| - const base::string16& annotation() const { return annotation_; }
|
| - const std::string& suggest_query_params() const {
|
| - return suggest_query_params_;
|
| - }
|
| -
|
| - const base::string16& answer_contents() const { return answer_contents_; }
|
| - const base::string16& answer_type() const { return answer_type_; }
|
| -
|
| - bool should_prefetch() const { return should_prefetch_; }
|
| -
|
| - // Fills in |match_contents_class_| to reflect how |match_contents_| should
|
| - // be displayed and bolded against the current |input_text|. If
|
| - // |allow_bolding_all| is false and |match_contents_class_| would have all
|
| - // of |match_contents_| bolded, do nothing.
|
| - void ClassifyMatchContents(const bool allow_bolding_all,
|
| - const base::string16& input_text);
|
| -
|
| - // Result:
|
| - virtual int CalculateRelevance(
|
| - const AutocompleteInput& input,
|
| - bool keyword_provider_requested) const OVERRIDE;
|
| -
|
| - private:
|
| - // The search terms to be used for this suggestion.
|
| - base::string16 suggestion_;
|
| -
|
| - // The contents to be displayed as prefix of match contents.
|
| - // Used for postfix suggestions to display a leading ellipsis (or some
|
| - // equivalent character) to indicate omitted text.
|
| - // Only used to pass this information to about:omnibox's "Additional Info".
|
| - base::string16 match_contents_prefix_;
|
| -
|
| - // Optional annotation for the |match_contents_| for disambiguation.
|
| - // This may be displayed in the autocomplete match contents, but is defined
|
| - // separately to facilitate different formatting.
|
| - base::string16 annotation_;
|
| -
|
| - // Optional additional parameters to be added to the search URL.
|
| - std::string suggest_query_params_;
|
| -
|
| - // Optional formatted Answers result.
|
| - base::string16 answer_contents_;
|
| -
|
| - // Type of optional formatted Answers result.
|
| - base::string16 answer_type_;
|
| -
|
| - // Should this result be prefetched?
|
| - bool should_prefetch_;
|
| - };
|
| -
|
| - class NavigationResult : public Result {
|
| - public:
|
| - NavigationResult(const AutocompleteSchemeClassifier& scheme_classifier,
|
| - const GURL& url,
|
| - AutocompleteMatchType::Type type,
|
| - const base::string16& description,
|
| - const std::string& deletion_url,
|
| - bool from_keyword_provider,
|
| - int relevance,
|
| - bool relevance_from_server,
|
| - const base::string16& input_text,
|
| - const std::string& languages);
|
| - virtual ~NavigationResult();
|
| -
|
| - const GURL& url() const { return url_; }
|
| - const base::string16& description() const { return description_; }
|
| - const base::string16& formatted_url() const { return formatted_url_; }
|
| -
|
| - // Fills in |match_contents_| and |match_contents_class_| to reflect how
|
| - // the URL should be displayed and bolded against the current |input_text|
|
| - // and user |languages|. If |allow_bolding_nothing| is false and
|
| - // |match_contents_class_| would result in an entirely unbolded
|
| - // |match_contents_|, do nothing.
|
| - void CalculateAndClassifyMatchContents(const bool allow_bolding_nothing,
|
| - const base::string16& input_text,
|
| - const std::string& languages);
|
| -
|
| - // Result:
|
| - virtual int CalculateRelevance(
|
| - const AutocompleteInput& input,
|
| - bool keyword_provider_requested) const OVERRIDE;
|
| -
|
| - private:
|
| - // The suggested url for navigation.
|
| - GURL url_;
|
| -
|
| - // The properly formatted ("fixed up") URL string with equivalent meaning
|
| - // to the one in |url_|.
|
| - base::string16 formatted_url_;
|
| -
|
| - // The suggested navigational result description; generally the site name.
|
| - base::string16 description_;
|
| - };
|
| -
|
| - typedef std::vector<SuggestResult> SuggestResults;
|
| - typedef std::vector<NavigationResult> NavigationResults;
|
| -
|
| - // A simple structure bundling most of the information (including
|
| - // both SuggestResults and NavigationResults) returned by a call to
|
| - // the suggest server.
|
| - //
|
| - // This has to be declared after the typedefs since it relies on some of them.
|
| - struct Results {
|
| - Results();
|
| - ~Results();
|
| -
|
| - // Clears |suggest_results| and |navigation_results| and resets
|
| - // |verbatim_relevance| to -1 (implies unset).
|
| - void Clear();
|
| -
|
| - // Returns whether any of the results (including verbatim) have
|
| - // server-provided scores.
|
| - bool HasServerProvidedScores() const;
|
| -
|
| - // Query suggestions sorted by relevance score.
|
| - SuggestResults suggest_results;
|
| -
|
| - // Navigational suggestions sorted by relevance score.
|
| - NavigationResults navigation_results;
|
| -
|
| - // The server supplied verbatim relevance scores. Negative values
|
| - // indicate that there is no suggested score; a value of 0
|
| - // suppresses the verbatim result.
|
| - int verbatim_relevance;
|
| -
|
| - // The JSON metadata associated with this server response.
|
| - std::string metadata;
|
| -
|
| - // If the active suggest field trial (if any) has triggered.
|
| - bool field_trial_triggered;
|
| -
|
| - // If the relevance values of the results are from the server.
|
| - bool relevances_from_server;
|
| -
|
| - // URLs of any images in Answers results.
|
| - std::vector<GURL> answers_image_urls;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(Results);
|
| - };
|
| -
|
| - // Extracts JSON data fetched by |source| and converts it to UTF-8.
|
| - static std::string ExtractJsonData(const net::URLFetcher* source);
|
| -
|
| - // Parses JSON response received from the provider, stripping XSSI
|
| - // protection if needed. Returns the parsed data if successful, NULL
|
| - // otherwise.
|
| - static scoped_ptr<base::Value> DeserializeJsonData(std::string json_data);
|
| -
|
| - // Parses results from the suggest server and updates the appropriate suggest
|
| - // and navigation result lists in |results|. |is_keyword_result| indicates
|
| - // whether the response was received from the keyword provider.
|
| - // Returns whether the appropriate result list members were updated.
|
| - static bool ParseSuggestResults(
|
| - const base::Value& root_val,
|
| - const AutocompleteInput& input,
|
| - const AutocompleteSchemeClassifier& scheme_classifier,
|
| - int default_result_relevance,
|
| - const std::string& languages,
|
| - bool is_keyword_result,
|
| - Results* results);
|
| -
|
| - private:
|
| - // Gets URLs of any images in Answers results.
|
| - static void GetAnswersImageURLs(const base::DictionaryValue* answer_json,
|
| - std::vector<GURL>* urls);
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SearchSuggestionParser);
|
| -};
|
| -
|
| -#endif // COMPONENTS_AUTOCOMPLETE_SEARCH_SUGGESTION_PARSER_H_
|
|
|