Show bubbles for ExtensionsToolbarContainer
Fixes loading of extensions that require activation and page reload to
work. Showing a confirmation bubble is necessary for a user to be able
to accept reloading the page so that the extension can inject on page
load.
Bug: chromium:959930
Change-Id: I7a0563eb5cb5fe46496b8ea12ce30d68d1467641
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1641550
Commit-Queue: Peter Boström <[email protected]>
Reviewed-by: Devlin <[email protected]>
Reviewed-by: Elly Fong-Jones <[email protected]>
Cr-Commit-Position: refs/heads/master@{#669367}
diff --git a/chrome/browser/extensions/extension_action_runner.cc b/chrome/browser/extensions/extension_action_runner.cc
index eb0d4128..ced1a58b 100644
--- a/chrome/browser/extensions/extension_action_runner.cc
+++ b/chrome/browser/extensions/extension_action_runner.cc
@@ -373,18 +373,18 @@
const base::Callback<void(ToolbarActionsBarBubbleDelegate::CloseAction)>&
callback) {
Browser* browser = chrome::FindBrowserWithWebContents(web_contents());
- ToolbarActionsBar* toolbar_actions_bar =
- browser ? browser->window()->GetToolbarActionsBar() : nullptr;
- if (toolbar_actions_bar) {
- if (default_bubble_close_action_for_testing_) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE,
- base::BindOnce(callback, *default_bubble_close_action_for_testing_));
- } else {
- toolbar_actions_bar->ShowToolbarActionBubble(
- std::make_unique<BlockedActionBubbleDelegate>(callback,
- extension->id()));
- }
+ ExtensionsContainer* const extensions_container =
+ browser ? browser->window()->GetExtensionsContainer() : nullptr;
+ if (!extensions_container)
+ return;
+ if (default_bubble_close_action_for_testing_) {
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE,
+ base::BindOnce(callback, *default_bubble_close_action_for_testing_));
+ } else {
+ extensions_container->ShowToolbarActionBubble(
+ std::make_unique<BlockedActionBubbleDelegate>(callback,
+ extension->id()));
}
}