| OLD | NEW |
| 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/extensions/settings_api_bubble_helpers.h" | 5 #include "chrome/browser/ui/extensions/settings_api_bubble_helpers.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 #include "chrome/browser/extensions/ntp_overridden_bubble_delegate.h" | 10 #include "chrome/browser/extensions/ntp_overridden_bubble_delegate.h" |
| 11 #include "chrome/browser/extensions/settings_api_bubble_delegate.h" | 11 #include "chrome/browser/extensions/settings_api_bubble_delegate.h" |
| 12 #include "chrome/browser/extensions/settings_api_helpers.h" | 12 #include "chrome/browser/extensions/settings_api_helpers.h" |
| 13 #include "chrome/browser/ui/browser_finder.h" | 13 #include "chrome/browser/ui/browser_finder.h" |
| 14 #include "chrome/browser/ui/browser_window.h" | 14 #include "chrome/browser/ui/browser_window.h" |
| 15 #include "chrome/browser/ui/extensions/extension_message_bubble_bridge.h" | 15 #include "chrome/browser/ui/extensions/extension_message_bubble_bridge.h" |
| 16 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 16 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 17 #include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" | 17 #include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" |
| 18 #include "chrome/common/extensions/manifest_handlers/settings_overrides_handler.
h" | 18 #include "chrome/common/extensions/manifest_handlers/settings_overrides_handler.
h" |
| 19 #include "chrome/common/url_constants.h" | 19 #include "chrome/common/url_constants.h" |
| 20 #include "content/public/browser/browser_url_handler.h" | 20 #include "content/public/browser/browser_url_handler.h" |
| 21 #include "content/public/browser/navigation_entry.h" | 21 #include "content/public/browser/navigation_entry.h" |
| 22 #include "extensions/common/constants.h" | 22 #include "extensions/common/constants.h" |
| 23 | 23 |
| 24 namespace extensions { | 24 namespace extensions { |
| 25 | 25 |
| 26 namespace { | 26 namespace { |
| 27 | 27 |
| 28 void ShowSettingsApiBubble(SettingsApiOverrideType type, | 28 void ShowSettingsApiBubble(SettingsApiOverrideType type, |
| 29 Browser* browser) { | 29 Browser* browser) { |
| 30 ToolbarActionsModel* model = ToolbarActionsModel::Get(browser->profile()); |
| 31 if (model->has_active_bubble()) |
| 32 return; |
| 33 |
| 30 std::unique_ptr<ExtensionMessageBubbleController> settings_api_bubble( | 34 std::unique_ptr<ExtensionMessageBubbleController> settings_api_bubble( |
| 31 new ExtensionMessageBubbleController( | 35 new ExtensionMessageBubbleController( |
| 32 new SettingsApiBubbleDelegate(browser->profile(), type), browser)); | 36 new SettingsApiBubbleDelegate(browser->profile(), type), browser)); |
| 33 if (!settings_api_bubble->ShouldShow()) | 37 if (!settings_api_bubble->ShouldShow()) |
| 34 return; | 38 return; |
| 35 | 39 |
| 40 settings_api_bubble->SetIsActiveBubble(); |
| 36 ToolbarActionsBar* toolbar_actions_bar = | 41 ToolbarActionsBar* toolbar_actions_bar = |
| 37 browser->window()->GetToolbarActionsBar(); | 42 browser->window()->GetToolbarActionsBar(); |
| 38 std::unique_ptr<ToolbarActionsBarBubbleDelegate> bridge( | 43 std::unique_ptr<ToolbarActionsBarBubbleDelegate> bridge( |
| 39 new ExtensionMessageBubbleBridge(std::move(settings_api_bubble))); | 44 new ExtensionMessageBubbleBridge(std::move(settings_api_bubble))); |
| 40 toolbar_actions_bar->ShowToolbarActionBubbleAsync(std::move(bridge)); | 45 toolbar_actions_bar->ShowToolbarActionBubbleAsync(std::move(bridge)); |
| 41 } | 46 } |
| 42 | 47 |
| 43 } // namespace | 48 } // namespace |
| 44 | 49 |
| 45 void MaybeShowExtensionControlledHomeNotification(Browser* browser) { | 50 void MaybeShowExtensionControlledHomeNotification(Browser* browser) { |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 // See if the current active URL matches a transformed NewTab URL. | 87 // See if the current active URL matches a transformed NewTab URL. |
| 83 GURL ntp_url(chrome::kChromeUINewTabURL); | 88 GURL ntp_url(chrome::kChromeUINewTabURL); |
| 84 bool ignored_param; | 89 bool ignored_param; |
| 85 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( | 90 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( |
| 86 &ntp_url, | 91 &ntp_url, |
| 87 web_contents->GetBrowserContext(), | 92 web_contents->GetBrowserContext(), |
| 88 &ignored_param); | 93 &ignored_param); |
| 89 if (ntp_url != active_url) | 94 if (ntp_url != active_url) |
| 90 return; // Not being overridden by an extension. | 95 return; // Not being overridden by an extension. |
| 91 | 96 |
| 97 ToolbarActionsModel* model = ToolbarActionsModel::Get(browser->profile()); |
| 98 if (model->has_active_bubble()) |
| 99 return; |
| 100 |
| 92 std::unique_ptr<ExtensionMessageBubbleController> ntp_overridden_bubble( | 101 std::unique_ptr<ExtensionMessageBubbleController> ntp_overridden_bubble( |
| 93 new ExtensionMessageBubbleController( | 102 new ExtensionMessageBubbleController( |
| 94 new NtpOverriddenBubbleDelegate(browser->profile()), browser)); | 103 new NtpOverriddenBubbleDelegate(browser->profile()), browser)); |
| 95 if (!ntp_overridden_bubble->ShouldShow()) | 104 if (!ntp_overridden_bubble->ShouldShow()) |
| 96 return; | 105 return; |
| 97 | 106 |
| 107 ntp_overridden_bubble->SetIsActiveBubble(); |
| 98 ToolbarActionsBar* toolbar_actions_bar = | 108 ToolbarActionsBar* toolbar_actions_bar = |
| 99 browser->window()->GetToolbarActionsBar(); | 109 browser->window()->GetToolbarActionsBar(); |
| 100 std::unique_ptr<ToolbarActionsBarBubbleDelegate> bridge( | 110 std::unique_ptr<ToolbarActionsBarBubbleDelegate> bridge( |
| 101 new ExtensionMessageBubbleBridge(std::move(ntp_overridden_bubble))); | 111 new ExtensionMessageBubbleBridge(std::move(ntp_overridden_bubble))); |
| 102 toolbar_actions_bar->ShowToolbarActionBubbleAsync(std::move(bridge)); | 112 toolbar_actions_bar->ShowToolbarActionBubbleAsync(std::move(bridge)); |
| 103 } | 113 } |
| 104 | 114 |
| 105 } // namespace extensions | 115 } // namespace extensions |
| OLD | NEW |