| 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 #import "browser_actions_controller.h" | 5 #import "browser_actions_controller.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/sys_string_conversions.h" | 10 #include "base/sys_string_conversions.h" |
| (...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 714 } | 714 } |
| 715 } else if (![hiddenButtons_ containsObject:button]) { | 715 } else if (![hiddenButtons_ containsObject:button]) { |
| 716 [hiddenButtons_ addObject:button]; | 716 [hiddenButtons_ addObject:button]; |
| 717 [button removeFromSuperview]; | 717 [button removeFromSuperview]; |
| 718 [button setAlphaValue:0.0]; | 718 [button setAlphaValue:0.0]; |
| 719 [self updateOverflowMenu]; | 719 [self updateOverflowMenu]; |
| 720 } | 720 } |
| 721 } | 721 } |
| 722 | 722 |
| 723 - (void)browserActionClicked:(BrowserActionButton*)button { | 723 - (void)browserActionClicked:(BrowserActionButton*)button { |
| 724 int tabId = [self currentTabId]; | 724 const Extension* extension = [button extension]; |
| 725 if (tabId < 0) { | 725 GURL popupUrl; |
| 726 NOTREACHED() << "No current tab."; | 726 switch (toolbarModel_->ExecuteBrowserAction(extension, browser_, &popupUrl)) { |
| 727 return; | 727 case ExtensionToolbarModel::ACTION_NONE: |
| 728 } | 728 break; |
| 729 // If an extension popup is already open, it will get closed when it | 729 case ExtensionToolbarModel::ACTION_SHOW_POPUP: { |
| 730 // loses focus. | 730 NSPoint arrowPoint = [self popupPointForBrowserAction:extension]; |
| 731 | 731 [ExtensionPopupController showURL:popupUrl |
| 732 ExtensionAction* action = [button extension]->browser_action(); | 732 inBrowser:browser_ |
| 733 if (action->HasPopup(tabId)) { | 733 anchoredAt:arrowPoint |
| 734 GURL popupUrl = action->GetPopupUrl(tabId); | 734 arrowLocation:info_bubble::kTopRight |
| 735 NSPoint arrowPoint = [self popupPointForBrowserAction:[button extension]]; | 735 devMode:NO]; |
| 736 [ExtensionPopupController showURL:popupUrl | 736 break; |
| 737 inBrowser:browser_ | 737 } |
| 738 anchoredAt:arrowPoint | |
| 739 arrowLocation:info_bubble::kTopRight | |
| 740 devMode:NO]; | |
| 741 } else { | |
| 742 toolbarModel_->ExecuteBrowserAction(action->extension_id(), browser_); | |
| 743 } | 738 } |
| 744 } | 739 } |
| 745 | 740 |
| 746 - (BOOL)shouldDisplayBrowserAction:(const Extension*)extension { | 741 - (BOOL)shouldDisplayBrowserAction:(const Extension*)extension { |
| 747 // Only display incognito-enabled extensions while in incognito mode. | 742 // Only display incognito-enabled extensions while in incognito mode. |
| 748 return | 743 return |
| 749 (!profile_->IsOffTheRecord() || | 744 (!profile_->IsOffTheRecord() || |
| 750 profile_->GetExtensionService()->IsIncognitoEnabled(extension->id())); | 745 profile_->GetExtensionService()->IsIncognitoEnabled(extension->id())); |
| 751 } | 746 } |
| 752 | 747 |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 860 if (profile_->IsOffTheRecord()) | 855 if (profile_->IsOffTheRecord()) |
| 861 index = toolbarModel_->IncognitoIndexToOriginal(index); | 856 index = toolbarModel_->IncognitoIndexToOriginal(index); |
| 862 if (index < toolbarModel_->size()) { | 857 if (index < toolbarModel_->size()) { |
| 863 const Extension* extension = toolbarModel_->GetExtensionByIndex(index); | 858 const Extension* extension = toolbarModel_->GetExtensionByIndex(index); |
| 864 return [buttons_ objectForKey:base::SysUTF8ToNSString(extension->id())]; | 859 return [buttons_ objectForKey:base::SysUTF8ToNSString(extension->id())]; |
| 865 } | 860 } |
| 866 return nil; | 861 return nil; |
| 867 } | 862 } |
| 868 | 863 |
| 869 @end | 864 @end |
| OLD | NEW |