[Reland] [Extensions] Make extension message bubble factory platform-abstract
We want to show extension message bubbles on multiple platforms;
the first step towards this is to make the bubble factory
platform-abstract. Do so, and also add a handful of tests for the
process of showing the bubble.
BUG=474092
[email protected] (no relevant changes since original land)
Review URL: https://codereview.chromium.org/1087713002
Cr-Commit-Position: refs/heads/master@{#325269}
diff --git a/chrome/browser/extensions/extension_message_bubble_controller.cc b/chrome/browser/extensions/extension_message_bubble_controller.cc
index 778c7ad..a30b1f07 100644
--- a/chrome/browser/extensions/extension_message_bubble_controller.cc
+++ b/chrome/browser/extensions/extension_message_bubble_controller.cc
@@ -8,6 +8,7 @@
#include "base/metrics/histogram.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/extension_message_bubble.h"
+#include "chrome/browser/extensions/extension_toolbar_model.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
@@ -122,21 +123,15 @@
bool ExtensionMessageBubbleController::CloseOnDeactivate() { return false; }
-void ExtensionMessageBubbleController::Show(ExtensionMessageBubble* bubble) {
- // Wire up all the callbacks, to get notified what actions the user took.
- base::Closure dismiss_button_callback =
- base::Bind(&ExtensionMessageBubbleController::OnBubbleDismiss,
- base::Unretained(this));
- base::Closure action_button_callback =
- base::Bind(&ExtensionMessageBubbleController::OnBubbleAction,
- base::Unretained(this));
- base::Closure link_callback =
- base::Bind(&ExtensionMessageBubbleController::OnLinkClicked,
- base::Unretained(this));
- bubble->OnActionButtonClicked(action_button_callback);
- bubble->OnDismissButtonClicked(dismiss_button_callback);
- bubble->OnLinkClicked(link_callback);
+void ExtensionMessageBubbleController::HighlightExtensionsIfNecessary() {
+ if (delegate_->ShouldHighlightExtensions()) {
+ const ExtensionIdList& extension_ids = GetExtensionIdList();
+ DCHECK(!extension_ids.empty());
+ ExtensionToolbarModel::Get(profile_)->HighlightExtensions(extension_ids);
+ }
+}
+void ExtensionMessageBubbleController::Show(ExtensionMessageBubble* bubble) {
bubble->Show();
}