[Extensions] Clean up ExtensionMessageBubble architecture
It's confusing to have ExtensionMessageBubbleController have both a delegate
(with subclasses) and be subclassed itself. Remove the subclasses of
ExtensionMessageBubbleController (except tests), and have the delegates
determine the behavior.
BUG=
[email protected]
Review URL: https://codereview.chromium.org/1424723004
Cr-Commit-Position: refs/heads/master@{#358198}
diff --git a/chrome/browser/extensions/proxy_overridden_bubble_delegate.h b/chrome/browser/extensions/proxy_overridden_bubble_delegate.h
new file mode 100644
index 0000000..cbd851d1
--- /dev/null
+++ b/chrome/browser/extensions/proxy_overridden_bubble_delegate.h
@@ -0,0 +1,53 @@
+// 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 CHROME_BROWSER_EXTENSIONS_PROXY_OVERRIDDEN_BUBBLE_DELEGATE_H_
+#define CHROME_BROWSER_EXTENSIONS_PROXY_OVERRIDDEN_BUBBLE_DELEGATE_H_
+
+#include <string>
+
+#include "base/macros.h"
+#include "chrome/browser/extensions/extension_message_bubble_controller.h"
+
+class Browser;
+
+namespace extensions {
+
+class ProxyOverriddenBubbleDelegate
+ : public ExtensionMessageBubbleController::Delegate {
+ public:
+ explicit ProxyOverriddenBubbleDelegate(Profile* profile);
+ ~ProxyOverriddenBubbleDelegate() override;
+
+ // ExtensionMessageBubbleController::Delegate methods.
+ bool ShouldIncludeExtension(const Extension* extension) override;
+ void AcknowledgeExtension(
+ const std::string& extension_id,
+ ExtensionMessageBubbleController::BubbleAction user_action) override;
+ void PerformAction(const ExtensionIdList& list) override;
+ base::string16 GetTitle() const override;
+ base::string16 GetMessageBody(bool anchored_to_browser_action,
+ int extension_count) const override;
+ base::string16 GetOverflowText(
+ const base::string16& overflow_count) const override;
+ GURL GetLearnMoreUrl() const override;
+ base::string16 GetActionButtonLabel() const override;
+ base::string16 GetDismissButtonLabel() const override;
+ bool ShouldCloseOnDeactivate() const override;
+ bool ShouldShowExtensionList() const override;
+ bool ShouldHighlightExtensions() const override;
+ bool ShouldLimitToEnabledExtensions() const override;
+ void LogExtensionCount(size_t count) override;
+ void LogAction(ExtensionMessageBubbleController::BubbleAction) override;
+
+ private:
+ // The ID of the extension we are showing the bubble for.
+ std::string extension_id_;
+
+ DISALLOW_COPY_AND_ASSIGN(ProxyOverriddenBubbleDelegate);
+};
+
+} // namespace extensions
+
+#endif // CHROME_BROWSER_EXTENSIONS_PROXY_OVERRIDDEN_BUBBLE_DELEGATE_H_