| Index: chrome/browser/autocomplete/bookmark_provider.h
|
| ===================================================================
|
| --- chrome/browser/autocomplete/bookmark_provider.h (revision 0)
|
| +++ chrome/browser/autocomplete/bookmark_provider.h (revision 0)
|
| @@ -0,0 +1,71 @@
|
| +// Copyright (c) 2012 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 CHROME_BROWSER_AUTOCOMPLETE_BOOKMARK_PROVIDER_H_
|
| +#define CHROME_BROWSER_AUTOCOMPLETE_BOOKMARK_PROVIDER_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "chrome/browser/autocomplete/autocomplete_input.h"
|
| +#include "chrome/browser/autocomplete/autocomplete_match.h"
|
| +#include "chrome/browser/autocomplete/autocomplete_provider.h"
|
| +#include "chrome/browser/bookmarks/bookmark_utils.h"
|
| +#include "chrome/browser/history/snippet.h"
|
| +
|
| +class BookmarkModel;
|
| +class Profile;
|
| +
|
| +// This class is an autocomplete provider which quickly (and synchronously)
|
| +// provides autocomplete suggestions based on the titles of bookmarks. Page
|
| +// titles, URLs, and typed and visit counts of the bookmarks are not currently
|
| +// taken into consideration as those factors will have been used by the
|
| +// HistoryQuickProvider (HQP) while identifying suggestions.
|
| +//
|
| +// TODO(mrossetti): Propose a way to coordinate with the HQP the taking of typed
|
| +// and visit counts and last visit dates, etc. into consideration while scoring.
|
| +class BookmarkProvider : public AutocompleteProvider {
|
| + public:
|
| + BookmarkProvider(AutocompleteProviderListener* listener, Profile* profile);
|
| +
|
| + // When |minimal_changes| is true short circuit any additional searching and
|
| + // leave the previous matches for this provider unchanged, otherwise perform
|
| + // a complete search for |input| across all bookmark titles.
|
| + virtual void Start(const AutocompleteInput& input,
|
| + bool minimal_changes) OVERRIDE;
|
| +
|
| + // Sets the BookmarkModel for unit tests.
|
| + void set_bookmark_model_for_testing(BookmarkModel* bookmark_model) {
|
| + bookmark_model_ = bookmark_model;
|
| + }
|
| +
|
| + private:
|
| + virtual ~BookmarkProvider();
|
| +
|
| + // Performs the actual matching of |input| over the bookmarks and fills in
|
| + // |matches_|. If |best_match| then only suggest the single best match,
|
| + // otherwise suggest the top |kMaxMatches| matches.
|
| + void DoAutocomplete(const AutocompleteInput& input, bool best_match);
|
| +
|
| + // Calculates a relevance for |title_match|, converts it to an
|
| + // AutocompleteMatch and returns the converted match.
|
| + AutocompleteMatch TitleMatchToACMatch(
|
| + const bookmark_utils::TitleMatch& title_match);
|
| +
|
| + // Converts |positions| into ACMatchClassifications and returns the
|
| + // classifications. |text_length| is used to determine the need to add an
|
| + // 'unhighlighted' classification span so the tail of the source string
|
| + // properly highlighted.
|
| + static ACMatchClassifications ClassificationsFromMatch(
|
| + const Snippet::MatchPositions& positions,
|
| + size_t text_length);
|
| +
|
| + BookmarkModel* bookmark_model_;
|
| +
|
| + // Languages used during the URL formatting.
|
| + std::string languages_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(BookmarkProvider);
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_AUTOCOMPLETE_BOOKMARK_PROVIDER_H_
|
|
|
| Property changes on: chrome/browser/autocomplete/bookmark_provider.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|