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

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

Issue 25305002: Implement initial chrome.browserAction.openPopup API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: please review Created 7 years, 2 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 (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/ui/views/browser_actions_container.h" 5 #include "chrome/browser/ui/views/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_service.h" 10 #include "chrome/browser/extensions/extension_service.h"
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 index = model_->OriginalIndexToIncognito(index); 679 index = model_->OriginalIndexToIncognito(index);
680 680
681 DCHECK(index >= 0 && index < static_cast<int>(browser_action_views_.size())); 681 DCHECK(index >= 0 && index < static_cast<int>(browser_action_views_.size()));
682 682
683 DeleteBrowserActionViews(); 683 DeleteBrowserActionViews();
684 CreateBrowserActionViews(); 684 CreateBrowserActionViews();
685 Layout(); 685 Layout();
686 SchedulePaint(); 686 SchedulePaint();
687 } 687 }
688 688
689 void BrowserActionsContainer::BrowserActionShowPopup(
690 const extensions::Extension* extension) {
691 // DO_NOT_REVIEW: This is not completely correct yet.
692 BrowserActionButton* button = NULL;
693 for (BrowserActionViews::iterator it = browser_action_views_.begin();
694 it != browser_action_views_.end(); ++it) {
695 if ((*it)->button()->extension() == extension) {
696 button = (*it)->button();
697 }
698 }
699 if (button != NULL)
700 ShowPopup(button, ExtensionPopup::SHOW);
701 }
702
689 void BrowserActionsContainer::ModelLoaded() { 703 void BrowserActionsContainer::ModelLoaded() {
690 SetContainerWidth(); 704 SetContainerWidth();
691 } 705 }
692 706
693 void BrowserActionsContainer::LoadImages() { 707 void BrowserActionsContainer::LoadImages() {
694 ui::ThemeProvider* tp = GetThemeProvider(); 708 ui::ThemeProvider* tp = GetThemeProvider();
695 chevron_->SetIcon(*tp->GetImageSkiaNamed(IDR_BROWSER_ACTIONS_OVERFLOW)); 709 chevron_->SetIcon(*tp->GetImageSkiaNamed(IDR_BROWSER_ACTIONS_OVERFLOW));
696 chevron_->SetHoverIcon(*tp->GetImageSkiaNamed( 710 chevron_->SetHoverIcon(*tp->GetImageSkiaNamed(
697 IDR_BROWSER_ACTIONS_OVERFLOW_H)); 711 IDR_BROWSER_ACTIONS_OVERFLOW_H));
698 chevron_->SetPushedIcon(*tp->GetImageSkiaNamed( 712 chevron_->SetPushedIcon(*tp->GetImageSkiaNamed(
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
808 // Only display incognito-enabled extensions while in incognito mode. 822 // Only display incognito-enabled extensions while in incognito mode.
809 return 823 return
810 (!profile_->IsOffTheRecord() || 824 (!profile_->IsOffTheRecord() ||
811 extensions::ExtensionSystem::Get(profile_)->extension_service()-> 825 extensions::ExtensionSystem::Get(profile_)->extension_service()->
812 IsIncognitoEnabled(extension->id())); 826 IsIncognitoEnabled(extension->id()));
813 } 827 }
814 828
815 void BrowserActionsContainer::ShowPopup( 829 void BrowserActionsContainer::ShowPopup(
816 BrowserActionButton* button, 830 BrowserActionButton* button,
817 ExtensionPopup::ShowAction show_action) { 831 ExtensionPopup::ShowAction show_action) {
818 const Extension* extension = button->extension(); 832 const extensions::Extension* extension = button->extension();
Matt Perry 2013/10/11 22:22:53 Why add this?
justinlin 2013/10/16 07:06:48 Done.
819 GURL popup_url; 833 GURL popup_url;
820 if (model_->ExecuteBrowserAction(extension, browser_, &popup_url) != 834 if (model_->ExecuteBrowserAction(extension, browser_, &popup_url) !=
821 ExtensionToolbarModel::ACTION_SHOW_POPUP) { 835 ExtensionToolbarModel::ACTION_SHOW_POPUP) {
822 return; 836 return;
823 } 837 }
824 838
825 // If we're showing the same popup, just hide it and return. 839 // If we're showing the same popup, just hide it and return.
826 bool same_showing = popup_ && button == popup_button_; 840 bool same_showing = popup_ && button == popup_button_;
827 841
828 // Always hide the current popup, even if it's not the same. 842 // Always hide the current popup, even if it's not the same.
(...skipping 11 matching lines...) Expand all
840 views::BubbleBorder::TOP_LEFT : views::BubbleBorder::TOP_RIGHT; 854 views::BubbleBorder::TOP_LEFT : views::BubbleBorder::TOP_RIGHT;
841 popup_ = ExtensionPopup::ShowPopup(popup_url, 855 popup_ = ExtensionPopup::ShowPopup(popup_url,
842 browser_, 856 browser_,
843 reference_view, 857 reference_view,
844 arrow, 858 arrow,
845 show_action); 859 show_action);
846 popup_->GetWidget()->AddObserver(this); 860 popup_->GetWidget()->AddObserver(this);
847 popup_button_ = button; 861 popup_button_ = button;
848 popup_button_->SetButtonPushed(); 862 popup_button_->SetButtonPushed();
849 } 863 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698