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 |