| 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/ui/views/location_bar/location_bar_view.h" | 5 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 1010 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1021 return; | 1021 return; |
| 1022 | 1022 |
| 1023 // Remember the previous visibility of the page actions so that we can | 1023 // Remember the previous visibility of the page actions so that we can |
| 1024 // notify when this changes. | 1024 // notify when this changes. |
| 1025 std::map<ExtensionAction*, bool> old_visibility; | 1025 std::map<ExtensionAction*, bool> old_visibility; |
| 1026 for (PageActionViews::const_iterator i(page_action_views_.begin()); | 1026 for (PageActionViews::const_iterator i(page_action_views_.begin()); |
| 1027 i != page_action_views_.end(); ++i) { | 1027 i != page_action_views_.end(); ++i) { |
| 1028 old_visibility[(*i)->image_view()->page_action()] = (*i)->visible(); | 1028 old_visibility[(*i)->image_view()->page_action()] = (*i)->visible(); |
| 1029 } | 1029 } |
| 1030 | 1030 |
| 1031 std::vector<ExtensionAction*> page_actions; | 1031 std::vector<ExtensionAction*> new_page_actions; |
| 1032 | 1032 |
| 1033 TabContents* tab_contents = GetTabContents(); | 1033 TabContents* tab_contents = GetTabContents(); |
| 1034 if (tab_contents) { | 1034 if (tab_contents) { |
| 1035 extensions::LocationBarController* controller = | 1035 extensions::LocationBarController* controller = |
| 1036 tab_contents->extension_tab_helper()->location_bar_controller(); | 1036 tab_contents->extension_tab_helper()->location_bar_controller(); |
| 1037 page_actions.swap(*controller->GetCurrentActions()); | 1037 new_page_actions = controller->GetCurrentActions(); |
| 1038 } | 1038 } |
| 1039 | 1039 |
| 1040 // On startup we sometimes haven't loaded any extensions. This makes sure | 1040 // On startup we sometimes haven't loaded any extensions. This makes sure |
| 1041 // we catch up when the extensions (and any page actions) load. | 1041 // we catch up when the extensions (and any page actions) load. |
| 1042 if (page_actions.size() != page_action_views_.size()) { | 1042 if (page_actions_ != new_page_actions) { |
| 1043 page_actions_.swap(new_page_actions); |
| 1043 DeletePageActionViews(); // Delete the old views (if any). | 1044 DeletePageActionViews(); // Delete the old views (if any). |
| 1044 | 1045 |
| 1045 page_action_views_.resize(page_actions.size()); | 1046 page_action_views_.resize(page_actions_.size()); |
| 1046 View* right_anchor = chrome_to_mobile_view_; | 1047 View* right_anchor = chrome_to_mobile_view_; |
| 1047 if (!right_anchor) | 1048 if (!right_anchor) |
| 1048 right_anchor = star_view_; | 1049 right_anchor = star_view_; |
| 1049 if (!right_anchor) | 1050 if (!right_anchor) |
| 1050 right_anchor = action_box_button_view_; | 1051 right_anchor = action_box_button_view_; |
| 1051 DCHECK(right_anchor); | 1052 DCHECK(right_anchor); |
| 1052 | 1053 |
| 1053 // Add the page actions in reverse order, so that the child views are | 1054 // Add the page actions in reverse order, so that the child views are |
| 1054 // inserted in left-to-right order for accessibility. | 1055 // inserted in left-to-right order for accessibility. |
| 1055 for (int i = page_actions.size() - 1; i >= 0; --i) { | 1056 for (int i = page_actions_.size() - 1; i >= 0; --i) { |
| 1056 page_action_views_[i] = new PageActionWithBadgeView( | 1057 page_action_views_[i] = new PageActionWithBadgeView( |
| 1057 delegate_->CreatePageActionImageView(this, page_actions[i])); | 1058 delegate_->CreatePageActionImageView(this, page_actions_[i])); |
| 1058 page_action_views_[i]->SetVisible(false); | 1059 page_action_views_[i]->SetVisible(false); |
| 1059 AddChildViewAt(page_action_views_[i], GetIndexOf(right_anchor)); | 1060 AddChildViewAt(page_action_views_[i], GetIndexOf(right_anchor)); |
| 1060 } | 1061 } |
| 1061 } | 1062 } |
| 1062 | 1063 |
| 1063 WebContents* contents = GetWebContentsFromDelegate(delegate_); | 1064 WebContents* contents = GetWebContentsFromDelegate(delegate_); |
| 1064 if (!page_action_views_.empty() && contents) { | 1065 if (!page_action_views_.empty() && contents) { |
| 1065 Browser* browser = | 1066 Browser* browser = |
| 1066 browser::FindBrowserForController(&contents->GetController(), NULL); | 1067 browser::FindBrowserForController(&contents->GetController(), NULL); |
| 1067 GURL url = browser->GetActiveWebContents()->GetURL(); | 1068 GURL url = browser->GetActiveWebContents()->GetURL(); |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1366 int LocationBarView::GetInternalHeight(bool use_preferred_size) { | 1367 int LocationBarView::GetInternalHeight(bool use_preferred_size) { |
| 1367 int total_height = | 1368 int total_height = |
| 1368 use_preferred_size ? GetPreferredSize().height() : height(); | 1369 use_preferred_size ? GetPreferredSize().height() : height(); |
| 1369 return std::max(total_height - (kVerticalEdgeThickness * 2), 0); | 1370 return std::max(total_height - (kVerticalEdgeThickness * 2), 0); |
| 1370 } | 1371 } |
| 1371 | 1372 |
| 1372 bool LocationBarView::HasValidSuggestText() const { | 1373 bool LocationBarView::HasValidSuggestText() const { |
| 1373 return suggested_text_view_ && !suggested_text_view_->size().IsEmpty() && | 1374 return suggested_text_view_ && !suggested_text_view_->size().IsEmpty() && |
| 1374 !suggested_text_view_->text().empty(); | 1375 !suggested_text_view_->text().empty(); |
| 1375 } | 1376 } |
| OLD | NEW |