blob: 0b54d3e4aebc76820f1def4072ed8305d7c8d1d9 [file] [log] [blame]
sdefresne70948d62015-08-11 10:46:351// Copyright 2015 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_OMNIBOX_BROWSER_CLIPBOARD_URL_PROVIDER_H_
6#define COMPONENTS_OMNIBOX_BROWSER_CLIPBOARD_URL_PROVIDER_H_
7
8#include "base/macros.h"
9#include "components/omnibox/browser/autocomplete_provider.h"
mpearson931028c2016-07-01 18:55:1110#include "components/omnibox/browser/history_url_provider.h"
sdefresne70948d62015-08-11 10:46:3511
12class AutocompleteProviderClient;
13class ClipboardRecentContent;
mpearson931028c2016-07-01 18:55:1114class HistoryURLProvider;
sdefresne70948d62015-08-11 10:46:3515
16// Autocomplete provider offering content based on the clipboard's content.
17class ClipboardURLProvider : public AutocompleteProvider {
18 public:
19 ClipboardURLProvider(AutocompleteProviderClient* client,
mpearson931028c2016-07-01 18:55:1120 HistoryURLProvider* history_url_provider,
sdefresne70948d62015-08-11 10:46:3521 ClipboardRecentContent* clipboard_content);
22
23 // AutocompleteProvider implementation.
24 void Start(const AutocompleteInput& input, bool minimal_changes) override;
mpearsonea5016a2017-06-01 22:20:3225 void AddProviderInfo(ProvidersInfo* provider_info) const override;
sdefresne70948d62015-08-11 10:46:3526
27 private:
28 ~ClipboardURLProvider() override;
29
30 AutocompleteProviderClient* client_;
31 ClipboardRecentContent* clipboard_content_;
32
mpearson931028c2016-07-01 18:55:1133 // Used for efficiency when creating the verbatim match. Can be NULL.
34 HistoryURLProvider* history_url_provider_;
35
mpearsonea5016a2017-06-01 22:20:3236 // The current URL suggested and the number of times it has been offered.
37 // Used for recording metrics.
38 GURL current_url_suggested_;
39 size_t current_url_suggested_times_;
40
sdefresne70948d62015-08-11 10:46:3541 DISALLOW_COPY_AND_ASSIGN(ClipboardURLProvider);
42};
43
44#endif // COMPONENTS_OMNIBOX_BROWSER_CLIPBOARD_URL_PROVIDER_H_