| 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/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
| (...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 if (!IsInitialized()) | 449 if (!IsInitialized()) |
| 450 return min_size; | 450 return min_size; |
| 451 | 451 |
| 452 min_size.set_height(min_size.height() * size_animation_.GetCurrentValue()); | 452 min_size.set_height(min_size.height() * size_animation_.GetCurrentValue()); |
| 453 | 453 |
| 454 // Compute width of omnibox-leading content. | 454 // Compute width of omnibox-leading content. |
| 455 const int edge_thickness = GetHorizontalEdgeThickness(); | 455 const int edge_thickness = GetHorizontalEdgeThickness(); |
| 456 int leading_width = edge_thickness; | 456 int leading_width = edge_thickness; |
| 457 if (ShouldShowKeywordBubble()) { | 457 if (ShouldShowKeywordBubble()) { |
| 458 // The selected keyword view can collapse completely. | 458 // The selected keyword view can collapse completely. |
| 459 } else if (ShouldShowSecurityChip()) { | 459 } else if (ShouldShowLocationIconText()) { |
| 460 base::string16 security_text = GetSecurityText(); | |
| 461 leading_width += | 460 leading_width += |
| 462 location_icon_view_->GetMinimumSizeForLabelText(security_text).width(); | 461 location_icon_view_->GetMinimumSizeForLabelText(GetLocationIconText()) |
| 462 .width(); |
| 463 } else { | 463 } else { |
| 464 leading_width += | 464 leading_width += |
| 465 kHorizontalPadding + location_icon_view_->GetMinimumSize().width(); | 465 kHorizontalPadding + location_icon_view_->GetMinimumSize().width(); |
| 466 } | 466 } |
| 467 | 467 |
| 468 // Compute width of omnibox-trailing content. | 468 // Compute width of omnibox-trailing content. |
| 469 int trailing_width = edge_thickness; | 469 int trailing_width = edge_thickness; |
| 470 trailing_width += IncrementalMinimumWidth(star_view_) + | 470 trailing_width += IncrementalMinimumWidth(star_view_) + |
| 471 IncrementalMinimumWidth(translate_icon_view_) + | 471 IncrementalMinimumWidth(translate_icon_view_) + |
| 472 IncrementalMinimumWidth(open_pdf_in_reader_view_) + | 472 IncrementalMinimumWidth(open_pdf_in_reader_view_) + |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 GetTemplateURLForKeyword(keyword); | 523 GetTemplateURLForKeyword(keyword); |
| 524 if (template_url && | 524 if (template_url && |
| 525 (template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION)) { | 525 (template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION)) { |
| 526 gfx::Image image = extensions::OmniboxAPI::Get(profile())-> | 526 gfx::Image image = extensions::OmniboxAPI::Get(profile())-> |
| 527 GetOmniboxIcon(template_url->GetExtensionId()); | 527 GetOmniboxIcon(template_url->GetExtensionId()); |
| 528 selected_keyword_view_->SetImage(image.AsImageSkia()); | 528 selected_keyword_view_->SetImage(image.AsImageSkia()); |
| 529 } else { | 529 } else { |
| 530 selected_keyword_view_->ResetImage(); | 530 selected_keyword_view_->ResetImage(); |
| 531 } | 531 } |
| 532 } | 532 } |
| 533 } else if (ShouldShowSecurityChip()) { | 533 } else if (ShouldShowLocationIconText()) { |
| 534 location_icon_view_->SetLabel(GetSecurityText()); | 534 location_icon_view_->SetLabel(GetLocationIconText()); |
| 535 // The largest fraction of the omnibox that can be taken by the EV bubble. | 535 // The largest fraction of the omnibox that can be taken by the EV bubble. |
| 536 const double kMaxBubbleFraction = 0.5; | 536 const double kMaxBubbleFraction = 0.5; |
| 537 leading_decorations.AddDecoration(vertical_padding, location_height, false, | 537 leading_decorations.AddDecoration(vertical_padding, location_height, false, |
| 538 kMaxBubbleFraction, 0, item_padding, | 538 kMaxBubbleFraction, 0, item_padding, |
| 539 location_icon_view_); | 539 location_icon_view_); |
| 540 } else { | 540 } else { |
| 541 leading_decorations.AddDecoration(vertical_padding, location_height, | 541 leading_decorations.AddDecoration(vertical_padding, location_height, |
| 542 location_icon_view_); | 542 location_icon_view_); |
| 543 } | 543 } |
| 544 | 544 |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 653 open_pdf_in_reader_view_->Update(web_contents_for_sub_views); | 653 open_pdf_in_reader_view_->Update(web_contents_for_sub_views); |
| 654 | 654 |
| 655 if (star_view_) | 655 if (star_view_) |
| 656 UpdateBookmarkStarVisibility(); | 656 UpdateBookmarkStarVisibility(); |
| 657 | 657 |
| 658 if (contents) | 658 if (contents) |
| 659 omnibox_view_->OnTabChanged(contents); | 659 omnibox_view_->OnTabChanged(contents); |
| 660 else | 660 else |
| 661 omnibox_view_->Update(); | 661 omnibox_view_->Update(); |
| 662 | 662 |
| 663 location_icon_view_->SetSecurityState( | 663 location_icon_view_->SetTextVisibility( |
| 664 ShouldShowSecurityChip(), !contents && ShouldAnimateSecurityChip()); | 664 ShouldShowLocationIconText(), |
| 665 | 665 !contents && ShouldAnimateLocationIconTextVisibilityChange()); |
| 666 OnChanged(); // NOTE: Calls Layout(). | 666 OnChanged(); // NOTE: Calls Layout(). |
| 667 } | 667 } |
| 668 | 668 |
| 669 void LocationBarView::ResetTabState(WebContents* contents) { | 669 void LocationBarView::ResetTabState(WebContents* contents) { |
| 670 omnibox_view_->ResetTabState(contents); | 670 omnibox_view_->ResetTabState(contents); |
| 671 } | 671 } |
| 672 | 672 |
| 673 //////////////////////////////////////////////////////////////////////////////// | 673 //////////////////////////////////////////////////////////////////////////////// |
| 674 // LocationBarView, public OmniboxEditController implementation: | 674 // LocationBarView, public OmniboxEditController implementation: |
| 675 | 675 |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 872 #if !defined(OS_CHROMEOS) | 872 #if !defined(OS_CHROMEOS) |
| 873 WebContents* web_contents = delegate_->GetWebContents(); | 873 WebContents* web_contents = delegate_->GetWebContents(); |
| 874 if (!web_contents) | 874 if (!web_contents) |
| 875 return; | 875 return; |
| 876 Browser* browser = chrome::FindBrowserWithWebContents(web_contents); | 876 Browser* browser = chrome::FindBrowserWithWebContents(web_contents); |
| 877 if (browser) | 877 if (browser) |
| 878 FirstRunBubble::ShowBubble(browser, location_icon_view_); | 878 FirstRunBubble::ShowBubble(browser, location_icon_view_); |
| 879 #endif | 879 #endif |
| 880 } | 880 } |
| 881 | 881 |
| 882 base::string16 LocationBarView::GetSecurityText() const { | 882 base::string16 LocationBarView::GetLocationIconText() const { |
| 883 const base::string16 extension_name = GetExtensionName( |
| 884 GetToolbarModel()->GetURL(), delegate_->GetWebContents()); |
| 885 if (!extension_name.empty()) |
| 886 return extension_name; |
| 887 |
| 883 bool has_ev_cert = | 888 bool has_ev_cert = |
| 884 (GetToolbarModel()->GetSecurityLevel(false) == security_state::EV_SECURE); | 889 (GetToolbarModel()->GetSecurityLevel(false) == security_state::EV_SECURE); |
| 885 return has_ev_cert ? GetToolbarModel()->GetEVCertName() | 890 return has_ev_cert ? GetToolbarModel()->GetEVCertName() |
| 886 : GetToolbarModel()->GetSecureVerboseText(); | 891 : GetToolbarModel()->GetSecureVerboseText(); |
| 887 } | 892 } |
| 888 | 893 |
| 889 bool LocationBarView::ShouldShowKeywordBubble() const { | 894 bool LocationBarView::ShouldShowKeywordBubble() const { |
| 890 return !omnibox_view_->model()->keyword().empty() && | 895 return !omnibox_view_->model()->keyword().empty() && |
| 891 !omnibox_view_->model()->is_keyword_hint(); | 896 !omnibox_view_->model()->is_keyword_hint(); |
| 892 } | 897 } |
| 893 | 898 |
| 894 bool LocationBarView::ShouldShowSecurityChip() const { | 899 bool LocationBarView::ShouldShowLocationIconText() const { |
| 900 if (!GetOmniboxView()->IsEditingOrEmpty() && |
| 901 GetToolbarModel()->GetURL().SchemeIs(extensions::kExtensionScheme)) |
| 902 return true; |
| 903 |
| 895 using SecurityLevel = security_state::SecurityLevel; | 904 using SecurityLevel = security_state::SecurityLevel; |
| 896 const SecurityLevel level = GetToolbarModel()->GetSecurityLevel(false); | 905 const SecurityLevel level = GetToolbarModel()->GetSecurityLevel(false); |
| 897 return level == SecurityLevel::EV_SECURE || level == SecurityLevel::SECURE || | 906 return level == SecurityLevel::EV_SECURE || level == SecurityLevel::SECURE || |
| 898 level == SecurityLevel::DANGEROUS || | 907 level == SecurityLevel::DANGEROUS || |
| 899 level == SecurityLevel::HTTP_SHOW_WARNING; | 908 level == SecurityLevel::HTTP_SHOW_WARNING; |
| 900 } | 909 } |
| 901 | 910 |
| 902 bool LocationBarView::ShouldAnimateSecurityChip() const { | 911 bool LocationBarView::ShouldAnimateLocationIconTextVisibilityChange() const { |
| 912 // Text for extension URLs should not be animated (their security level is |
| 913 // SecurityLevel::NONE). |
| 903 using SecurityLevel = security_state::SecurityLevel; | 914 using SecurityLevel = security_state::SecurityLevel; |
| 904 SecurityLevel level = GetToolbarModel()->GetSecurityLevel(false); | 915 SecurityLevel level = GetToolbarModel()->GetSecurityLevel(false); |
| 905 return level == SecurityLevel::DANGEROUS || | 916 return level == SecurityLevel::DANGEROUS || |
| 906 level == SecurityLevel::HTTP_SHOW_WARNING; | 917 level == SecurityLevel::HTTP_SHOW_WARNING; |
| 907 } | 918 } |
| 908 | 919 |
| 909 //////////////////////////////////////////////////////////////////////////////// | 920 //////////////////////////////////////////////////////////////////////////////// |
| 910 // LocationBarView, private LocationBar implementation: | 921 // LocationBarView, private LocationBar implementation: |
| 911 | 922 |
| 912 void LocationBarView::ShowFirstRunBubble() { | 923 void LocationBarView::ShowFirstRunBubble() { |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1214 // LocationBarView, private TemplateURLServiceObserver implementation: | 1225 // LocationBarView, private TemplateURLServiceObserver implementation: |
| 1215 | 1226 |
| 1216 void LocationBarView::OnTemplateURLServiceChanged() { | 1227 void LocationBarView::OnTemplateURLServiceChanged() { |
| 1217 template_url_service_->RemoveObserver(this); | 1228 template_url_service_->RemoveObserver(this); |
| 1218 template_url_service_ = nullptr; | 1229 template_url_service_ = nullptr; |
| 1219 // If the browser is no longer active, let's not show the info bubble, as this | 1230 // If the browser is no longer active, let's not show the info bubble, as this |
| 1220 // would make the browser the active window again. | 1231 // would make the browser the active window again. |
| 1221 if (omnibox_view_ && omnibox_view_->GetWidget()->IsActive()) | 1232 if (omnibox_view_ && omnibox_view_->GetWidget()->IsActive()) |
| 1222 ShowFirstRunBubble(); | 1233 ShowFirstRunBubble(); |
| 1223 } | 1234 } |
| OLD | NEW |