| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 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/toolbar/toolbar_actions_bar.h" | 5 #include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/profiler/scoped_tracker.h" | 8 #include "base/profiler/scoped_tracker.h" |
| 9 #include "chrome/browser/extensions/extension_action_manager.h" | 9 #include "chrome/browser/extensions/extension_action_manager.h" |
| 10 #include "chrome/browser/extensions/extension_message_bubble_controller.h" | 10 #include "chrome/browser/extensions/extension_message_bubble_controller.h" |
| (...skipping 699 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 710 delta = -1; | 710 delta = -1; |
| 711 else if (drag_type == DRAG_TO_MAIN) | 711 else if (drag_type == DRAG_TO_MAIN) |
| 712 delta = 1; | 712 delta = 1; |
| 713 model_->MoveExtensionIcon(toolbar_actions_[dragged_index]->GetId(), | 713 model_->MoveExtensionIcon(toolbar_actions_[dragged_index]->GetId(), |
| 714 dropped_index); | 714 dropped_index); |
| 715 if (delta) | 715 if (delta) |
| 716 model_->SetVisibleIconCount(model_->visible_icon_count() + delta); | 716 model_->SetVisibleIconCount(model_->visible_icon_count() + delta); |
| 717 } | 717 } |
| 718 } | 718 } |
| 719 | 719 |
| 720 bool ToolbarActionsBar::ShouldShowInfoBubble() { | |
| 721 // If the redesign isn't running, or the user has already acknowledged it, | |
| 722 // we don't show the bubble. | |
| 723 PrefService* prefs = browser_->profile()->GetPrefs(); | |
| 724 if (!extensions::FeatureSwitch::extension_action_redesign()->IsEnabled() || | |
| 725 (prefs->HasPrefPath(prefs::kToolbarIconSurfacingBubbleAcknowledged) && | |
| 726 prefs->GetBoolean(prefs::kToolbarIconSurfacingBubbleAcknowledged))) | |
| 727 return false; | |
| 728 | |
| 729 // We don't show more than once per day. | |
| 730 if (prefs->HasPrefPath(prefs::kToolbarIconSurfacingBubbleLastShowTime)) { | |
| 731 base::Time last_shown_time = base::Time::FromInternalValue( | |
| 732 prefs->GetInt64(prefs::kToolbarIconSurfacingBubbleLastShowTime)); | |
| 733 if (base::Time::Now() - last_shown_time < base::TimeDelta::FromDays(1)) | |
| 734 return false; | |
| 735 } | |
| 736 | |
| 737 if (!model_->RedesignIsShowingNewIcons()) { | |
| 738 // We only show the bubble if there are any new icons present - otherwise, | |
| 739 // the user won't see anything different, so we treat it as acknowledged. | |
| 740 OnToolbarActionsBarBubbleClosed( | |
| 741 ToolbarActionsBarBubbleDelegate::ACKNOWLEDGED); | |
| 742 return false; | |
| 743 } | |
| 744 | |
| 745 return true; | |
| 746 } | |
| 747 | |
| 748 void ToolbarActionsBar::MaybeShowExtensionBubble() { | 720 void ToolbarActionsBar::MaybeShowExtensionBubble() { |
| 749 scoped_ptr<extensions::ExtensionMessageBubbleController> controller = | 721 scoped_ptr<extensions::ExtensionMessageBubbleController> controller = |
| 750 ExtensionMessageBubbleFactory(browser_->profile()).GetController(); | 722 ExtensionMessageBubbleFactory(browser_->profile()).GetController(); |
| 751 if (controller) { | 723 if (controller) { |
| 752 controller->HighlightExtensionsIfNecessary(); | 724 controller->HighlightExtensionsIfNecessary(); |
| 753 delegate_->ShowExtensionMessageBubble(controller.Pass()); | 725 delegate_->ShowExtensionMessageBubble(controller.Pass()); |
| 754 } | 726 } |
| 755 } | 727 } |
| 756 | 728 |
| 757 void ToolbarActionsBar::OnToolbarExtensionAdded( | 729 void ToolbarActionsBar::OnToolbarExtensionAdded( |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 916 tracked_objects::ScopedTracker tracking_profile( | 888 tracked_objects::ScopedTracker tracking_profile( |
| 917 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 889 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 918 "ToolbarActionsBar::OnToolbarModelInitialized")); | 890 "ToolbarActionsBar::OnToolbarModelInitialized")); |
| 919 ResizeDelegate(gfx::Tween::EASE_OUT, false); | 891 ResizeDelegate(gfx::Tween::EASE_OUT, false); |
| 920 } | 892 } |
| 921 | 893 |
| 922 Browser* ToolbarActionsBar::GetBrowser() { | 894 Browser* ToolbarActionsBar::GetBrowser() { |
| 923 return browser_; | 895 return browser_; |
| 924 } | 896 } |
| 925 | 897 |
| 926 void ToolbarActionsBar::OnToolbarActionsBarBubbleShown() { | |
| 927 // Record the last time the bubble was shown. | |
| 928 browser_->profile()->GetPrefs()->SetInt64( | |
| 929 prefs::kToolbarIconSurfacingBubbleLastShowTime, | |
| 930 base::Time::Now().ToInternalValue()); | |
| 931 } | |
| 932 | |
| 933 void ToolbarActionsBar::OnToolbarActionsBarBubbleClosed(CloseAction action) { | |
| 934 if (action == ToolbarActionsBarBubbleDelegate::ACKNOWLEDGED) { | |
| 935 PrefService* prefs = browser_->profile()->GetPrefs(); | |
| 936 prefs->SetBoolean(prefs::kToolbarIconSurfacingBubbleAcknowledged, true); | |
| 937 // Once the bubble is acknowledged, we no longer need to store the last | |
| 938 // show time. | |
| 939 if (prefs->HasPrefPath(prefs::kToolbarIconSurfacingBubbleLastShowTime)) | |
| 940 prefs->ClearPref(prefs::kToolbarIconSurfacingBubbleLastShowTime); | |
| 941 } | |
| 942 } | |
| 943 | |
| 944 void ToolbarActionsBar::ReorderActions() { | 898 void ToolbarActionsBar::ReorderActions() { |
| 945 if (toolbar_actions_.empty()) | 899 if (toolbar_actions_.empty()) |
| 946 return; | 900 return; |
| 947 | 901 |
| 948 // First, reset the order to that of the model. | 902 // First, reset the order to that of the model. |
| 949 auto compare = [](ToolbarActionViewController* const& action, | 903 auto compare = [](ToolbarActionViewController* const& action, |
| 950 const scoped_refptr<const extensions::Extension>& ext) { | 904 const scoped_refptr<const extensions::Extension>& ext) { |
| 951 return action->GetId() == ext->id(); | 905 return action->GetId() == ext->id(); |
| 952 }; | 906 }; |
| 953 SortContainer(&toolbar_actions_.get(), model_->toolbar_items(), compare); | 907 SortContainer(&toolbar_actions_.get(), model_->toolbar_items(), compare); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1002 for (ToolbarActionViewController* action : toolbar_actions_) { | 956 for (ToolbarActionViewController* action : toolbar_actions_) { |
| 1003 if (action->GetId() == id) | 957 if (action->GetId() == id) |
| 1004 return action; | 958 return action; |
| 1005 } | 959 } |
| 1006 return nullptr; | 960 return nullptr; |
| 1007 } | 961 } |
| 1008 | 962 |
| 1009 content::WebContents* ToolbarActionsBar::GetCurrentWebContents() { | 963 content::WebContents* ToolbarActionsBar::GetCurrentWebContents() { |
| 1010 return browser_->tab_strip_model()->GetActiveWebContents(); | 964 return browser_->tab_strip_model()->GetActiveWebContents(); |
| 1011 } | 965 } |
| OLD | NEW |