| Index: chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
|
| diff --git a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
|
| index 4d6ef9a8762de2c9025fd145846c667615418288..ee9bbe00f89f0e8518cb671dd3860212026d44b5 100644
|
| --- a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
|
| +++ b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
|
| @@ -40,7 +40,9 @@
|
| #import "chrome/browser/ui/cocoa/location_bar/location_icon_decoration.h"
|
| #import "chrome/browser/ui/cocoa/location_bar/page_action_decoration.h"
|
| #import "chrome/browser/ui/cocoa/location_bar/plus_decoration.h"
|
| +#import "chrome/browser/ui/cocoa/location_bar/search_token_decoration.h"
|
| #import "chrome/browser/ui/cocoa/location_bar/selected_keyword_decoration.h"
|
| +#import "chrome/browser/ui/cocoa/location_bar/separator_decoration.h"
|
| #import "chrome/browser/ui/cocoa/location_bar/star_decoration.h"
|
| #import "chrome/browser/ui/cocoa/location_bar/web_intents_button_decoration.h"
|
| #import "chrome/browser/ui/cocoa/location_bar/zoom_decoration.h"
|
| @@ -94,8 +96,10 @@ LocationBarViewMac::LocationBarViewMac(
|
| field_(field),
|
| disposition_(CURRENT_TAB),
|
| location_icon_decoration_(new LocationIconDecoration(this)),
|
| + search_token_decoration_(new SearchTokenDecoration()),
|
| selected_keyword_decoration_(
|
| new SelectedKeywordDecoration(OmniboxViewMac::GetFieldFont())),
|
| + separator_decoration_(new SeparatorDecoration()),
|
| ev_bubble_decoration_(
|
| new EVBubbleDecoration(location_icon_decoration_.get(),
|
| OmniboxViewMac::GetFieldFont())),
|
| @@ -702,15 +706,20 @@ void LocationBarViewMac::Layout() {
|
| [cell addRightDecoration:keyword_hint_decoration_.get()];
|
|
|
| [cell addRightDecoration:web_intents_button_decoration_.get()];
|
| + [cell addRightDecoration:separator_decoration_.get()];
|
| + [cell addRightDecoration:search_token_decoration_.get()];
|
|
|
| // By default only the location icon is visible.
|
| location_icon_decoration_->SetVisible(true);
|
| selected_keyword_decoration_->SetVisible(false);
|
| ev_bubble_decoration_->SetVisible(false);
|
| keyword_hint_decoration_->SetVisible(false);
|
| + separator_decoration_->SetVisible(false);
|
| + search_token_decoration_->SetVisible(false);
|
|
|
| // Get the keyword to use for keyword-search and hinting.
|
| const string16 keyword = omnibox_view_->model()->keyword();
|
| +
|
| string16 short_name;
|
| bool is_extension_keyword = false;
|
| if (!keyword.empty()) {
|
| @@ -718,9 +727,16 @@ void LocationBarViewMac::Layout() {
|
| GetKeywordShortName(keyword, &is_extension_keyword);
|
| }
|
|
|
| + const string16 search_provider_name = GetSearchProviderName();
|
| const bool is_keyword_hint = omnibox_view_->model()->is_keyword_hint();
|
|
|
| - if (!keyword.empty() && !is_keyword_hint) {
|
| + const bool show_search_token = !search_provider_name.empty();
|
| + const bool show_selected_keyword = !keyword.empty() && !is_keyword_hint &&
|
| + !show_search_token;
|
| + const bool show_keyword_hint = !keyword.empty() && is_keyword_hint &&
|
| + !show_search_token;
|
| +
|
| + if (show_selected_keyword) {
|
| // Switch from location icon to keyword mode.
|
| location_icon_decoration_->SetVisible(false);
|
| selected_keyword_decoration_->SetVisible(true);
|
| @@ -733,10 +749,14 @@ void LocationBarViewMac::Layout() {
|
|
|
| string16 label(toolbar_model_->GetEVCertName());
|
| ev_bubble_decoration_->SetFullLabel(base::SysUTF16ToNSString(label));
|
| - } else if (!keyword.empty() && is_keyword_hint) {
|
| + } else if (show_keyword_hint) {
|
| keyword_hint_decoration_->SetKeyword(short_name,
|
| is_extension_keyword);
|
| keyword_hint_decoration_->SetVisible(true);
|
| + } else if (show_search_token) {
|
| + separator_decoration_->SetVisible(true);
|
| + search_token_decoration_->SetSearchProviderName(search_provider_name);
|
| + search_token_decoration_->SetVisible(true);
|
| }
|
|
|
| // These need to change anytime the layout changes.
|
| @@ -784,3 +804,15 @@ void LocationBarViewMac::UpdatePlusDecorationVisibility() {
|
| plus_decoration_->SetVisible(!toolbar_model_->GetInputInProgress());
|
| }
|
| }
|
| +
|
| +string16 LocationBarViewMac::GetSearchProviderName() const {
|
| + if (!toolbar_model_->GetInputInProgress() &&
|
| + toolbar_model_->WouldReplaceSearchURLWithSearchTerms()) {
|
| + const TemplateURL* template_url =
|
| + TemplateURLServiceFactory::GetForProfile(profile_)->
|
| + GetDefaultSearchProvider();
|
| + if (template_url)
|
| + return template_url->short_name();
|
| + }
|
| + return string16();
|
| +}
|
|
|