| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/extensions/extension_toolbar_model.h" | 5 #include "chrome/browser/extensions/extension_toolbar_model.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 toolbar_items_.push_back(make_scoped_refptr(extension)); | 115 toolbar_items_.push_back(make_scoped_refptr(extension)); |
| 116 last_known_positions_.push_back(extension->id()); | 116 last_known_positions_.push_back(extension->id()); |
| 117 } | 117 } |
| 118 | 118 |
| 119 FOR_EACH_OBSERVER( | 119 FOR_EACH_OBSERVER( |
| 120 Observer, observers_, ToolbarExtensionMoved(extension, index)); | 120 Observer, observers_, ToolbarExtensionMoved(extension, index)); |
| 121 MaybeUpdateVisibilityPref(extension, index); | 121 MaybeUpdateVisibilityPref(extension, index); |
| 122 UpdatePrefs(); | 122 UpdatePrefs(); |
| 123 } | 123 } |
| 124 | 124 |
| 125 ExtensionAction::ShowAction ExtensionToolbarModel::ExecuteBrowserAction( | |
| 126 const Extension* extension, | |
| 127 Browser* browser, | |
| 128 GURL* popup_url_out, | |
| 129 bool should_grant) { | |
| 130 content::WebContents* web_contents = NULL; | |
| 131 int tab_id = 0; | |
| 132 if (!ExtensionTabUtil::GetDefaultTab(browser, &web_contents, &tab_id)) | |
| 133 return ExtensionAction::ACTION_NONE; | |
| 134 | |
| 135 ExtensionAction* browser_action = | |
| 136 ExtensionActionManager::Get(profile_)->GetBrowserAction(*extension); | |
| 137 | |
| 138 // For browser actions, visibility == enabledness. | |
| 139 if (!browser_action->GetIsVisible(tab_id)) | |
| 140 return ExtensionAction::ACTION_NONE; | |
| 141 | |
| 142 if (should_grant) { | |
| 143 TabHelper::FromWebContents(web_contents) | |
| 144 ->active_tab_permission_granter() | |
| 145 ->GrantIfRequested(extension); | |
| 146 } | |
| 147 | |
| 148 if (browser_action->HasPopup(tab_id)) { | |
| 149 if (popup_url_out) | |
| 150 *popup_url_out = browser_action->GetPopupUrl(tab_id); | |
| 151 return ExtensionAction::ACTION_SHOW_POPUP; | |
| 152 } | |
| 153 | |
| 154 ExtensionActionAPI::BrowserActionExecuted( | |
| 155 browser->profile(), *browser_action, web_contents); | |
| 156 return ExtensionAction::ACTION_NONE; | |
| 157 } | |
| 158 | |
| 159 void ExtensionToolbarModel::SetVisibleIconCount(int count) { | 125 void ExtensionToolbarModel::SetVisibleIconCount(int count) { |
| 160 visible_icon_count_ = | 126 visible_icon_count_ = |
| 161 count == static_cast<int>(toolbar_items_.size()) ? -1 : count; | 127 count == static_cast<int>(toolbar_items_.size()) ? -1 : count; |
| 162 | 128 |
| 163 // Only set the prefs if we're not in highlight mode. Highlight mode is | 129 // Only set the prefs if we're not in highlight mode. Highlight mode is |
| 164 // designed to be a transitory state, and should not persist across browser | 130 // designed to be a transitory state, and should not persist across browser |
| 165 // restarts (though it may be re-entered). | 131 // restarts (though it may be re-entered). |
| 166 if (!is_highlighting_) { | 132 if (!is_highlighting_) { |
| 167 // Additionally, if we are using the new toolbar, any icons which are in the | 133 // Additionally, if we are using the new toolbar, any icons which are in the |
| 168 // overflow menu are considered "hidden". But it so happens that the times | 134 // overflow menu are considered "hidden". But it so happens that the times |
| (...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 691 FOR_EACH_OBSERVER(Observer, observers_, ToolbarHighlightModeChanged(false)); | 657 FOR_EACH_OBSERVER(Observer, observers_, ToolbarHighlightModeChanged(false)); |
| 692 } | 658 } |
| 693 } | 659 } |
| 694 | 660 |
| 695 void ExtensionToolbarModel::SetVisibleIconCountForTest(size_t visible_icons) { | 661 void ExtensionToolbarModel::SetVisibleIconCountForTest(size_t visible_icons) { |
| 696 SetVisibleIconCount(visible_icons); | 662 SetVisibleIconCount(visible_icons); |
| 697 FOR_EACH_OBSERVER(Observer, observers_, ToolbarVisibleCountChanged()); | 663 FOR_EACH_OBSERVER(Observer, observers_, ToolbarVisibleCountChanged()); |
| 698 } | 664 } |
| 699 | 665 |
| 700 } // namespace extensions | 666 } // namespace extensions |
| OLD | NEW |