Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: chrome/browser/ui/views/toolbar/browser_actions_container.cc

Issue 431173002: Create ExtensionActionView class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge conflict Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/views/toolbar/browser_actions_container.h" 5 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "chrome/browser/extensions/extension_util.h" 10 #include "chrome/browser/extensions/extension_util.h"
11 #include "chrome/browser/extensions/extension_view_host.h" 11 #include "chrome/browser/extensions/extension_view_host.h"
12 #include "chrome/browser/extensions/tab_helper.h" 12 #include "chrome/browser/extensions/tab_helper.h"
13 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/sessions/session_tab_helper.h"
15 #include "chrome/browser/ui/browser.h" 14 #include "chrome/browser/ui/browser.h"
16 #include "chrome/browser/ui/browser_window.h" 15 #include "chrome/browser/ui/browser_window.h"
17 #include "chrome/browser/ui/tabs/tab_strip_model.h" 16 #include "chrome/browser/ui/tabs/tab_strip_model.h"
18 #include "chrome/browser/ui/view_ids.h" 17 #include "chrome/browser/ui/view_ids.h"
19 #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" 18 #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h"
20 #include "chrome/browser/ui/views/extensions/extension_keybinding_registry_views .h" 19 #include "chrome/browser/ui/views/extensions/extension_keybinding_registry_views .h"
21 #include "chrome/browser/ui/views/extensions/extension_popup.h" 20 #include "chrome/browser/ui/views/extensions/extension_popup.h"
22 #include "chrome/browser/ui/views/toolbar/browser_actions_container_observer.h" 21 #include "chrome/browser/ui/views/toolbar/browser_actions_container_observer.h"
23 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" 22 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
24 #include "chrome/common/extensions/command.h" 23 #include "chrome/common/extensions/command.h"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 model_->SetVisibleIconCount(WidthToIconCount(predefined_width)); 206 model_->SetVisibleIconCount(WidthToIconCount(predefined_width));
208 } 207 }
209 if (model_ && model_->extensions_initialized()) 208 if (model_ && model_->extensions_initialized())
210 SetContainerWidth(); 209 SetContainerWidth();
211 } 210 }
212 211
213 BrowserActionView* BrowserActionsContainer::GetBrowserActionView( 212 BrowserActionView* BrowserActionsContainer::GetBrowserActionView(
214 ExtensionAction* action) { 213 ExtensionAction* action) {
215 for (BrowserActionViews::iterator i(browser_action_views_.begin()); 214 for (BrowserActionViews::iterator i(browser_action_views_.begin());
216 i != browser_action_views_.end(); ++i) { 215 i != browser_action_views_.end(); ++i) {
217 if ((*i)->button()->browser_action() == action) 216 if ((*i)->button()->extension_action() == action)
218 return *i; 217 return *i;
219 } 218 }
220 return NULL; 219 return NULL;
221 } 220 }
222 221
223 void BrowserActionsContainer::RefreshBrowserActionViews() { 222 void BrowserActionsContainer::RefreshBrowserActionViews() {
224 for (size_t i = 0; i < browser_action_views_.size(); ++i) 223 for (size_t i = 0; i < browser_action_views_.size(); ++i)
225 browser_action_views_[i]->button()->UpdateState(); 224 browser_action_views_[i]->button()->UpdateState();
226 } 225 }
227 226
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 } 295 }
297 296
298 void BrowserActionsContainer::SetPopupOwner(BrowserActionButton* popup_owner) { 297 void BrowserActionsContainer::SetPopupOwner(BrowserActionButton* popup_owner) {
299 // We should never be setting a popup owner when one already exists. 298 // We should never be setting a popup owner when one already exists.
300 DCHECK(!popup_owner_ || !popup_owner); 299 DCHECK(!popup_owner_ || !popup_owner);
301 popup_owner_ = popup_owner; 300 popup_owner_ = popup_owner;
302 } 301 }
303 302
304 void BrowserActionsContainer::HideActivePopup() { 303 void BrowserActionsContainer::HideActivePopup() {
305 if (popup_owner_) 304 if (popup_owner_)
306 popup_owner_->HidePopup(); 305 popup_owner_->view_controller()->HidePopup();
307 }
308
309 extensions::ExtensionToolbarModel* BrowserActionsContainer::GetModel() {
310 return model_;
311 } 306 }
312 307
313 void BrowserActionsContainer::AddObserver( 308 void BrowserActionsContainer::AddObserver(
314 BrowserActionsContainerObserver* observer) { 309 BrowserActionsContainerObserver* observer) {
315 observers_.AddObserver(observer); 310 observers_.AddObserver(observer);
316 } 311 }
317 312
318 void BrowserActionsContainer::RemoveObserver( 313 void BrowserActionsContainer::RemoveObserver(
319 BrowserActionsContainerObserver* observer) { 314 BrowserActionsContainerObserver* observer) {
320 observers_.RemoveObserver(observer); 315 observers_.RemoveObserver(observer);
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 observers_, 646 observers_,
652 OnBrowserActionsContainerAnimationEnded()); 647 OnBrowserActionsContainerAnimationEnded());
653 } 648 }
654 649
655 void BrowserActionsContainer::NotifyMenuDeleted( 650 void BrowserActionsContainer::NotifyMenuDeleted(
656 BrowserActionOverflowMenuController* controller) { 651 BrowserActionOverflowMenuController* controller) {
657 DCHECK_EQ(overflow_menu_, controller); 652 DCHECK_EQ(overflow_menu_, controller);
658 overflow_menu_ = NULL; 653 overflow_menu_ = NULL;
659 } 654 }
660 655
661 int BrowserActionsContainer::GetCurrentTabId() const { 656 content::WebContents* BrowserActionsContainer::GetCurrentWebContents() {
662 content::WebContents* active_tab = 657 return browser_->tab_strip_model()->GetActiveWebContents();
663 browser_->tab_strip_model()->GetActiveWebContents();
664 if (!active_tab)
665 return -1;
666
667 return SessionTabHelper::FromWebContents(active_tab)->session_id().id();
668 } 658 }
669 659
670 void BrowserActionsContainer::OnBrowserActionVisibilityChanged() { 660 void BrowserActionsContainer::OnBrowserActionVisibilityChanged() {
671 SetVisible(!browser_action_views_.empty()); 661 SetVisible(!browser_action_views_.empty());
672 if (owner_view_) { 662 if (owner_view_) {
673 owner_view_->Layout(); 663 owner_view_->Layout();
674 owner_view_->SchedulePaint(); 664 owner_view_->SchedulePaint();
675 } 665 }
676 } 666 }
677 667
(...skipping 13 matching lines...) Expand all
691 enabled_extensions().GetByID(extension_id); 681 enabled_extensions().GetByID(extension_id);
692 model_->MoveBrowserAction(extension, new_index); 682 model_->MoveBrowserAction(extension, new_index);
693 SchedulePaint(); 683 SchedulePaint();
694 } 684 }
695 685
696 size_t BrowserActionsContainer::GetFirstVisibleIconIndex() const { 686 size_t BrowserActionsContainer::GetFirstVisibleIconIndex() const {
697 return in_overflow_mode() ? model_->GetVisibleIconCount() : 0; 687 return in_overflow_mode() ? model_->GetVisibleIconCount() : 0;
698 } 688 }
699 689
700 ExtensionPopup* BrowserActionsContainer::TestGetPopup() { 690 ExtensionPopup* BrowserActionsContainer::TestGetPopup() {
701 return popup_owner_ ? popup_owner_->popup() : NULL; 691 return popup_owner_ ? popup_owner_->view_controller()->popup() : NULL;
702 } 692 }
703 693
704 void BrowserActionsContainer::TestSetIconVisibilityCount(size_t icons) { 694 void BrowserActionsContainer::TestSetIconVisibilityCount(size_t icons) {
705 model_->SetVisibleIconCount(icons); 695 model_->SetVisibleIconCount(icons);
706 chevron_->SetVisible(icons < browser_action_views_.size()); 696 chevron_->SetVisible(icons < browser_action_views_.size());
707 container_width_ = IconCountToWidth(icons, chevron_->visible()); 697 container_width_ = IconCountToWidth(icons, chevron_->visible());
708 Layout(); 698 Layout();
709 SchedulePaint(); 699 SchedulePaint();
710 } 700 }
711 701
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
1050 (popup_owner_ || 1040 (popup_owner_ ||
1051 !browser_->window()->IsActive() || 1041 !browser_->window()->IsActive() ||
1052 !browser_->window()->IsToolbarVisible())) { 1042 !browser_->window()->IsToolbarVisible())) {
1053 return false; 1043 return false;
1054 } 1044 }
1055 1045
1056 for (BrowserActionViews::iterator iter = browser_action_views_.begin(); 1046 for (BrowserActionViews::iterator iter = browser_action_views_.begin();
1057 iter != browser_action_views_.end(); ++iter) { 1047 iter != browser_action_views_.end(); ++iter) {
1058 BrowserActionButton* button = (*iter)->button(); 1048 BrowserActionButton* button = (*iter)->button();
1059 if (button->extension() == extension) 1049 if (button->extension() == extension)
1060 return button->ShowPopup(ExtensionPopup::SHOW, grant_tab_permissions); 1050 return button->view_controller()->ExecuteAction(
1051 ExtensionPopup::SHOW, grant_tab_permissions);
1061 } 1052 }
1062 return false; 1053 return false;
1063 } 1054 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/toolbar/browser_actions_container.h ('k') | chrome/browser/ui/views/toolbar/toolbar_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698