blob: e9d8408d7ec19379cc7a806004a3799f6c490000 [file] [log] [blame]
rdevlin.cronin690e44f2015-11-06 00:27:141// Copyright 2014 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 CHROME_BROWSER_EXTENSIONS_SETTINGS_API_BUBBLE_DELEGATE_H_
6#define CHROME_BROWSER_EXTENSIONS_SETTINGS_API_BUBBLE_DELEGATE_H_
7
avia2f4804a2015-12-24 23:11:138#include <stddef.h>
9
rdevlin.cronin690e44f2015-11-06 00:27:1410#include <string>
11
12#include "base/macros.h"
13#include "chrome/browser/extensions/extension_message_bubble_controller.h"
14#include "chrome/common/extensions/manifest_handlers/settings_overrides_handler.h"
15
16namespace extensions {
17
18class SettingsApiBubbleDelegate
19 : public ExtensionMessageBubbleController::Delegate {
20 public:
21 SettingsApiBubbleDelegate(Profile* profile, SettingsApiOverrideType type);
22 ~SettingsApiBubbleDelegate() override;
23
24 // ExtensionMessageBubbleController::Delegate methods.
25 bool ShouldIncludeExtension(const Extension* extension) override;
26 void AcknowledgeExtension(
27 const std::string& extension_id,
28 ExtensionMessageBubbleController::BubbleAction user_action) override;
29 void PerformAction(const ExtensionIdList& list) override;
30 base::string16 GetTitle() const override;
31 base::string16 GetMessageBody(bool anchored_to_browser_action,
32 int extension_count) const override;
33 base::string16 GetOverflowText(
34 const base::string16& overflow_count) const override;
35 GURL GetLearnMoreUrl() const override;
36 base::string16 GetActionButtonLabel() const override;
37 base::string16 GetDismissButtonLabel() const override;
38 bool ShouldCloseOnDeactivate() const override;
39 bool ShouldShowExtensionList() const override;
40 bool ShouldHighlightExtensions() const override;
41 bool ShouldLimitToEnabledExtensions() const override;
42 void LogExtensionCount(size_t count) override;
43 void LogAction(ExtensionMessageBubbleController::BubbleAction) override;
rdevlin.cronin486b20e2015-11-20 17:20:3544 const char* GetKey() override;
rdevlin.cronin690e44f2015-11-06 00:27:1445
46 private:
47 // The type of settings override this bubble will report on. This can be, for
48 // example, a bubble to notify the user that the search engine has been
49 // changed by an extension (or homepage/startup pages/etc).
50 SettingsApiOverrideType type_;
51
52 // The ID of the extension we are showing the bubble for.
53 std::string extension_id_;
54
55 DISALLOW_COPY_AND_ASSIGN(SettingsApiBubbleDelegate);
56};
57
58} // namespace extensions
59
60#endif // CHROME_BROWSER_EXTENSIONS_SETTINGS_API_BUBBLE_DELEGATE_H_