| OLD | NEW | 
|    1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |    1 // Copyright (c) 2010 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 #import "chrome/browser/cocoa/location_bar_view_mac.h" |    5 #import "chrome/browser/cocoa/location_bar_view_mac.h" | 
|    6  |    6  | 
|    7 #include "app/l10n_util_mac.h" |    7 #include "app/l10n_util_mac.h" | 
|    8 #include "app/resource_bundle.h" |    8 #include "app/resource_bundle.h" | 
|    9 #include "base/i18n/rtl.h" |    9 #include "base/i18n/rtl.h" | 
|   10 #include "base/nsimage_cache_mac.h" |   10 #include "base/nsimage_cache_mac.h" | 
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   55 // Make sure the TemplateURL still exists. |   55 // Make sure the TemplateURL still exists. | 
|   56 // TODO(sky): Once LocationBarView adds a listener to the TemplateURLModel |   56 // TODO(sky): Once LocationBarView adds a listener to the TemplateURLModel | 
|   57 // to track changes to the model, this should become a DCHECK. |   57 // to track changes to the model, this should become a DCHECK. | 
|   58   const TemplateURL* template_url = |   58   const TemplateURL* template_url = | 
|   59       profile->GetTemplateURLModel()->GetTemplateURLForKeyword(keyword); |   59       profile->GetTemplateURLModel()->GetTemplateURLForKeyword(keyword); | 
|   60   if (template_url) |   60   if (template_url) | 
|   61     return template_url->AdjustedShortNameForLocaleDirection(); |   61     return template_url->AdjustedShortNameForLocaleDirection(); | 
|   62   return std::wstring(); |   62   return std::wstring(); | 
|   63 } |   63 } | 
|   64  |   64  | 
|   65 // Values for the green text color displayed for EV certificates, based |   65 // Values for the label colors for different security states. | 
|   66 // on the values for kEvTextColor in location_bar_view_gtk.cc. |   66 static const CGFloat kEVSecureTextColorRedComponent = 0.03; | 
|   67 static const CGFloat kEvTextColorRedComponent = 0.0; |   67 static const CGFloat kEVSecureTextColorGreenComponent = 0.58; | 
|   68 static const CGFloat kEvTextColorGreenComponent = 0.59; |   68 static const CGFloat kEVSecureTextColorBlueComponent = 0.0; | 
|   69 static const CGFloat kEvTextColorBlueComponent = 0.08; |   69 static const CGFloat kSecurityErrorTextColorRedComponent = 0.63; | 
 |   70 static const CGFloat kSecurityErrorTextColorGreenComponent = 0.0; | 
 |   71 static const CGFloat kSecurityErrorTextColorBlueComponent = 0.0; | 
|   70  |   72  | 
|   71 // Build a short string to use in keyword-search when the field isn't |   73 // Build a short string to use in keyword-search when the field isn't | 
|   72 // very big. |   74 // very big. | 
|   73 // TODO(shess): Copied from views/location_bar_view.cc.  Try to share. |   75 // TODO(shess): Copied from views/location_bar_view.cc.  Try to share. | 
|   74 std::wstring CalculateMinString(const std::wstring& description) { |   76 std::wstring CalculateMinString(const std::wstring& description) { | 
|   75   // Chop at the first '.' or whitespace. |   77   // Chop at the first '.' or whitespace. | 
|   76   const size_t dot_index = description.find(L'.'); |   78   const size_t dot_index = description.find(L'.'); | 
|   77   const size_t ws_index = description.find_first_of(kWhitespaceWide); |   79   const size_t ws_index = description.find_first_of(kWhitespaceWide); | 
|   78   size_t chop_index = std::min(dot_index, ws_index); |   80   size_t chop_index = std::min(dot_index, ws_index); | 
|   79   std::wstring min_string; |   81   std::wstring min_string; | 
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  198   } |  200   } | 
|  199 } |  201 } | 
|  200  |  202  | 
|  201 void LocationBarViewMac::SaveStateToContents(TabContents* contents) { |  203 void LocationBarViewMac::SaveStateToContents(TabContents* contents) { | 
|  202   // TODO(shess): Why SaveStateToContents vs SaveStateToTab? |  204   // TODO(shess): Why SaveStateToContents vs SaveStateToTab? | 
|  203   edit_view_->SaveStateToTab(contents); |  205   edit_view_->SaveStateToTab(contents); | 
|  204 } |  206 } | 
|  205  |  207  | 
|  206 void LocationBarViewMac::Update(const TabContents* contents, |  208 void LocationBarViewMac::Update(const TabContents* contents, | 
|  207                                 bool should_restore_state) { |  209                                 bool should_restore_state) { | 
|  208   SetSecurityIcon(toolbar_model_->GetIcon()); |  210   SetSecurityIcon(toolbar_model_->GetSecurityIcon()); | 
|  209   page_action_views_.RefreshViews(); |  211   page_action_views_.RefreshViews(); | 
|  210   RefreshContentSettingsViews(); |  212   RefreshContentSettingsViews(); | 
|  211   // AutocompleteEditView restores state if the tab is non-NULL. |  213   // AutocompleteEditView restores state if the tab is non-NULL. | 
|  212   edit_view_->Update(should_restore_state ? contents : NULL); |  214   edit_view_->Update(should_restore_state ? contents : NULL); | 
|  213 } |  215 } | 
|  214  |  216  | 
|  215 void LocationBarViewMac::OnAutocompleteAccept(const GURL& url, |  217 void LocationBarViewMac::OnAutocompleteAccept(const GURL& url, | 
|  216                                               WindowOpenDisposition disposition, |  218                                               WindowOpenDisposition disposition, | 
|  217                                               PageTransition::Type transition, |  219                                               PageTransition::Type transition, | 
|  218                                               const GURL& alternate_nav_url) { |  220                                               const GURL& alternate_nav_url) { | 
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  448     SkBitmap* skiaBitmap = ResourceBundle::GetSharedInstance(). |  450     SkBitmap* skiaBitmap = ResourceBundle::GetSharedInstance(). | 
|  449         GetBitmapNamed(IDR_LOCATION_BAR_KEYWORD_HINT_TAB); |  451         GetBitmapNamed(IDR_LOCATION_BAR_KEYWORD_HINT_TAB); | 
|  450     if (skiaBitmap) { |  452     if (skiaBitmap) { | 
|  451       tab_button_image_.reset([gfx::SkBitmapToNSImage(*skiaBitmap) retain]); |  453       tab_button_image_.reset([gfx::SkBitmapToNSImage(*skiaBitmap) retain]); | 
|  452     } |  454     } | 
|  453   } |  455   } | 
|  454   return tab_button_image_; |  456   return tab_button_image_; | 
|  455 } |  457 } | 
|  456  |  458  | 
|  457 void LocationBarViewMac::SetSecurityIconLabel() { |  459 void LocationBarViewMac::SetSecurityIconLabel() { | 
|  458   std::wstring info_text; |  460   // TODO(shess): Separate from security icon and move icon to left of address. | 
|  459   std::wstring info_tooltip; |  461   std::wstring security_info_text(toolbar_model_->GetSecurityInfoText()); | 
|  460   ToolbarModel::InfoTextType info_text_type = |  462   if (security_info_text.empty()) { | 
|  461       toolbar_model_->GetInfoText(&info_text, &info_tooltip); |  463     security_image_view_.SetLabel(nil, nil, nil); | 
|  462   if (info_text_type == ToolbarModel::INFO_EV_TEXT) { |  464   } else { | 
|  463     NSString* icon_label = base::SysWideToNSString(info_text); |  465     NSString* icon_label = base::SysWideToNSString(security_info_text); | 
|  464     NSColor* color = [NSColor colorWithCalibratedRed:kEvTextColorRedComponent |  466     NSColor* color; | 
|  465                                                green:kEvTextColorGreenComponent |  467     if (toolbar_model_->GetSecurityLevel() == ToolbarModel::EV_SECURE) { | 
|  466                                                 blue:kEvTextColorBlueComponent |  468       color = [NSColor colorWithCalibratedRed:kEVSecureTextColorRedComponent | 
|  467                                                alpha:1.0]; |  469                                         green:kEVSecureTextColorGreenComponent | 
 |  470                                          blue:kEVSecureTextColorBlueComponent | 
 |  471                                         alpha:1.0]; | 
 |  472     } else { | 
 |  473       color = | 
 |  474           [NSColor colorWithCalibratedRed:kSecurityErrorTextColorRedComponent | 
 |  475                                     green:kSecurityErrorTextColorGreenComponent | 
 |  476                                      blue:kSecurityErrorTextColorBlueComponent | 
 |  477                                     alpha:1.0]; | 
 |  478     } | 
|  468     security_image_view_.SetLabel(icon_label, [field_ font], color); |  479     security_image_view_.SetLabel(icon_label, [field_ font], color); | 
|  469   } else { |  | 
|  470     security_image_view_.SetLabel(nil, nil, nil); |  | 
|  471   } |  480   } | 
|  472 } |  481 } | 
|  473  |  482  | 
|  474 void LocationBarViewMac::SetSecurityIcon(ToolbarModel::Icon icon) { |  483 void LocationBarViewMac::SetSecurityIcon(int resource_id) { | 
|  475   switch (icon) { |  484   if (resource_id == 0) { | 
|  476     case ToolbarModel::LOCK_ICON: |  485     security_image_view_.SetVisible(false); | 
|  477       security_image_view_.SetImageShown(SecurityImageView::LOCK); |  486   } else { | 
|  478       security_image_view_.SetVisible(true); |  487     security_image_view_.SetImageShown(resource_id); | 
|  479       SetSecurityIconLabel(); |  488     security_image_view_.SetVisible(true); | 
|  480       break; |  489     SetSecurityIconLabel(); | 
|  481     case ToolbarModel::WARNING_ICON: |  | 
|  482       security_image_view_.SetImageShown(SecurityImageView::WARNING); |  | 
|  483       security_image_view_.SetVisible(true); |  | 
|  484       SetSecurityIconLabel(); |  | 
|  485       break; |  | 
|  486     case ToolbarModel::NO_ICON: |  | 
|  487       security_image_view_.SetVisible(false); |  | 
|  488       break; |  | 
|  489     default: |  | 
|  490       NOTREACHED(); |  | 
|  491       security_image_view_.SetVisible(false); |  | 
|  492       break; |  | 
|  493   } |  490   } | 
|  494   [field_ resetFieldEditorFrameIfNeeded]; |  491   [field_ resetFieldEditorFrameIfNeeded]; | 
|  495 } |  492 } | 
|  496  |  493  | 
|  497 void LocationBarViewMac::Observe(NotificationType type, |  494 void LocationBarViewMac::Observe(NotificationType type, | 
|  498                                  const NotificationSource& source, |  495                                  const NotificationSource& source, | 
|  499                                  const NotificationDetails& details) { |  496                                  const NotificationDetails& details) { | 
|  500   switch (type.value) { |  497   switch (type.value) { | 
|  501     case NotificationType::EXTENSION_PAGE_ACTION_VISIBILITY_CHANGED: { |  498     case NotificationType::EXTENSION_PAGE_ACTION_VISIBILITY_CHANGED: { | 
|  502       TabContents* contents = GetTabContents(); |  499       TabContents* contents = GetTabContents(); | 
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  562 void LocationBarViewMac::LocationBarImageView::SetVisible(bool visible) { |  559 void LocationBarViewMac::LocationBarImageView::SetVisible(bool visible) { | 
|  563   visible_ = visible; |  560   visible_ = visible; | 
|  564 } |  561 } | 
|  565  |  562  | 
|  566 // SecurityImageView------------------------------------------------------------ |  563 // SecurityImageView------------------------------------------------------------ | 
|  567  |  564  | 
|  568 LocationBarViewMac::SecurityImageView::SecurityImageView( |  565 LocationBarViewMac::SecurityImageView::SecurityImageView( | 
|  569     LocationBarViewMac* owner, |  566     LocationBarViewMac* owner, | 
|  570     Profile* profile, |  567     Profile* profile, | 
|  571     ToolbarModel* model) |  568     ToolbarModel* model) | 
|  572     : lock_icon_(nil), |  569     : ev_secure_icon_(nil), | 
|  573       warning_icon_(nil), |  570       secure_icon_(nil), | 
 |  571       security_warning_icon_(nil), | 
 |  572       security_error_icon_(nil), | 
|  574       owner_(owner), |  573       owner_(owner), | 
|  575       profile_(profile), |  574       profile_(profile), | 
|  576       model_(model) {} |  575       model_(model) {} | 
|  577  |  576  | 
|  578 LocationBarViewMac::SecurityImageView::~SecurityImageView() {} |  577 LocationBarViewMac::SecurityImageView::~SecurityImageView() {} | 
|  579  |  578  | 
|  580 void LocationBarViewMac::SecurityImageView::SetImageShown(Image image) { |  579 void LocationBarViewMac::SecurityImageView::SetImageShown(int resource_id) { | 
|  581   switch (image) { |  580   scoped_nsobject<NSImage>* icon; | 
|  582     case LOCK: |  581   switch (resource_id) { | 
|  583       if (!lock_icon_.get()) { |  582     case IDR_EV_SECURE:        icon = &ev_secure_icon_; break; | 
|  584         ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |  583     case IDR_SECURE:           icon = &secure_icon_; break; | 
|  585         lock_icon_.reset([rb.GetNSImageNamed(IDR_LOCK) retain]); |  584     case IDR_SECURITY_WARNING: icon = &security_warning_icon_; break; | 
|  586       } |  585     case IDR_SECURITY_ERROR:   icon = &security_error_icon_; break; | 
|  587       SetImage(lock_icon_); |  586     default:                   NOTREACHED(); return; | 
|  588       break; |  | 
|  589     case WARNING: |  | 
|  590       if (!warning_icon_.get()) { |  | 
|  591         ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |  | 
|  592         warning_icon_.reset([rb.GetNSImageNamed(IDR_WARNING) retain]); |  | 
|  593       } |  | 
|  594       SetImage(warning_icon_); |  | 
|  595       break; |  | 
|  596     default: |  | 
|  597       NOTREACHED(); |  | 
|  598       break; |  | 
|  599   } |  587   } | 
 |  588   if (!icon->get()) { | 
 |  589     ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 
 |  590     icon->reset([rb.GetNSImageNamed(resource_id) retain]); | 
 |  591   } | 
 |  592   SetImage(*icon); | 
|  600 } |  593 } | 
|  601  |  594  | 
|  602 void LocationBarViewMac::SecurityImageView::OnMousePressed(NSRect bounds) { |  595 void LocationBarViewMac::SecurityImageView::OnMousePressed(NSRect bounds) { | 
|  603   TabContents* tab = owner_->GetTabContents(); |  596   TabContents* tab = owner_->GetTabContents(); | 
|  604   NavigationEntry* nav_entry = tab->controller().GetActiveEntry(); |  597   NavigationEntry* nav_entry = tab->controller().GetActiveEntry(); | 
|  605   if (!nav_entry) { |  598   if (!nav_entry) { | 
|  606     NOTREACHED(); |  599     NOTREACHED(); | 
|  607     return; |  600     return; | 
|  608   } |  601   } | 
|  609   tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true); |  602   tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true); | 
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  945       ++result; |  938       ++result; | 
|  946   } |  939   } | 
|  947   return result; |  940   return result; | 
|  948 } |  941 } | 
|  949  |  942  | 
|  950 void LocationBarViewMac::PageActionViewList::OnMousePressed(NSRect iconFrame, |  943 void LocationBarViewMac::PageActionViewList::OnMousePressed(NSRect iconFrame, | 
|  951                                                             size_t index) { |  944                                                             size_t index) { | 
|  952   ViewAt(index)->OnMousePressed(iconFrame); |  945   ViewAt(index)->OnMousePressed(iconFrame); | 
|  953 } |  946 } | 
|  954  |  947  | 
| OLD | NEW |