Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(393)

Side by Side Diff: chrome/browser/ui/views/location_bar/location_bar_view.cc

Issue 424383002: Experiment with displaying origins in the Omnibox. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/views/location_bar/location_bar_view.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 Delegate* delegate, 205 Delegate* delegate,
206 bool is_popup_mode) 206 bool is_popup_mode)
207 : LocationBar(profile), 207 : LocationBar(profile),
208 OmniboxEditController(command_updater), 208 OmniboxEditController(command_updater),
209 browser_(browser), 209 browser_(browser),
210 omnibox_view_(NULL), 210 omnibox_view_(NULL),
211 delegate_(delegate), 211 delegate_(delegate),
212 origin_chip_view_(NULL), 212 origin_chip_view_(NULL),
213 location_icon_view_(NULL), 213 location_icon_view_(NULL),
214 ev_bubble_view_(NULL), 214 ev_bubble_view_(NULL),
215 good_bubble_view_(NULL),
216 dubious_bubble_view_(NULL),
217 bad_bubble_view_(NULL),
215 ime_inline_autocomplete_view_(NULL), 218 ime_inline_autocomplete_view_(NULL),
216 selected_keyword_view_(NULL), 219 selected_keyword_view_(NULL),
217 suggested_text_view_(NULL), 220 suggested_text_view_(NULL),
218 keyword_hint_view_(NULL), 221 keyword_hint_view_(NULL),
219 mic_search_view_(NULL), 222 mic_search_view_(NULL),
220 zoom_view_(NULL), 223 zoom_view_(NULL),
221 generated_credit_card_view_(NULL), 224 generated_credit_card_view_(NULL),
222 open_pdf_in_reader_view_(NULL), 225 open_pdf_in_reader_view_(NULL),
223 manage_passwords_icon_view_(NULL), 226 manage_passwords_icon_view_(NULL),
224 translate_icon_view_(NULL), 227 translate_icon_view_(NULL),
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 // images have 1 px thick edges, which we don't want to overlap. 290 // images have 1 px thick edges, which we don't want to overlap.
288 const int kBubbleInteriorVerticalPadding = 1; 291 const int kBubbleInteriorVerticalPadding = 1;
289 const int bubble_vertical_padding = 292 const int bubble_vertical_padding =
290 (kBubblePadding + kBubbleInteriorVerticalPadding) * 2; 293 (kBubblePadding + kBubbleInteriorVerticalPadding) * 2;
291 const gfx::FontList bubble_font_list( 294 const gfx::FontList bubble_font_list(
292 GetLargestFontListWithHeightBound( 295 GetLargestFontListWithHeightBound(
293 font_list, location_height - bubble_vertical_padding)); 296 font_list, location_height - bubble_vertical_padding));
294 297
295 const SkColor background_color = 298 const SkColor background_color =
296 GetColor(ToolbarModel::NONE, LocationBarView::BACKGROUND); 299 GetColor(ToolbarModel::NONE, LocationBarView::BACKGROUND);
300
297 ev_bubble_view_ = new EVBubbleView( 301 ev_bubble_view_ = new EVBubbleView(
298 bubble_font_list, GetColor(ToolbarModel::EV_SECURE, SECURITY_TEXT), 302 bubble_font_list, GetColor(ToolbarModel::EV_SECURE, SECURITY_TEXT),
299 background_color, this); 303 background_color, this);
300 ev_bubble_view_->set_drag_controller(this); 304 ev_bubble_view_->set_drag_controller(this);
301 AddChildView(ev_bubble_view_); 305 AddChildView(ev_bubble_view_);
302 306
307 good_bubble_view_ = new EVBubbleView(
308 bubble_font_list, GetColor(ToolbarModel::SECURE, SECURITY_TEXT),
309 background_color, this);
310 good_bubble_view_->set_drag_controller(this);
311 AddChildView(good_bubble_view_);
312
313 dubious_bubble_view_ = new EVBubbleView(
314 bubble_font_list, GetColor(ToolbarModel::SECURITY_WARNING, SECURITY_TEXT),
315 background_color, this);
316 dubious_bubble_view_->set_drag_controller(this);
317 AddChildView(dubious_bubble_view_);
318
319 bad_bubble_view_ = new EVBubbleView(
320 bubble_font_list, GetColor(ToolbarModel::SECURITY_ERROR, SECURITY_TEXT),
321 background_color, this);
322 bad_bubble_view_->set_drag_controller(this);
323 AddChildView(bad_bubble_view_);
324
303 // Initialize the Omnibox view. 325 // Initialize the Omnibox view.
304 omnibox_view_ = new OmniboxViewViews( 326 omnibox_view_ = new OmniboxViewViews(
305 this, profile(), command_updater(), 327 this, profile(), command_updater(),
306 is_popup_mode_ || 328 is_popup_mode_ ||
307 (browser_->is_app() && CommandLine::ForCurrentProcess()-> 329 (browser_->is_app() && CommandLine::ForCurrentProcess()->
308 HasSwitch(switches::kEnableStreamlinedHostedApps)), 330 HasSwitch(switches::kEnableStreamlinedHostedApps)),
309 this, font_list); 331 this, font_list);
310 omnibox_view_->Init(); 332 omnibox_view_->Init();
311 omnibox_view_->SetFocusable(true); 333 omnibox_view_->SetFocusable(true);
312 AddChildView(omnibox_view_); 334 AddChildView(omnibox_view_);
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 } 712 }
691 713
692 void LocationBarView::Layout() { 714 void LocationBarView::Layout() {
693 if (!IsInitialized()) 715 if (!IsInitialized())
694 return; 716 return;
695 717
696 origin_chip_view_->SetVisible(GetToolbarModel()->ShouldShowOriginChip()); 718 origin_chip_view_->SetVisible(GetToolbarModel()->ShouldShowOriginChip());
697 selected_keyword_view_->SetVisible(false); 719 selected_keyword_view_->SetVisible(false);
698 location_icon_view_->SetVisible(false); 720 location_icon_view_->SetVisible(false);
699 ev_bubble_view_->SetVisible(false); 721 ev_bubble_view_->SetVisible(false);
722 good_bubble_view_->SetVisible(false);
723 dubious_bubble_view_->SetVisible(false);
724 bad_bubble_view_->SetVisible(false);
700 keyword_hint_view_->SetVisible(false); 725 keyword_hint_view_->SetVisible(false);
701 726
702 LocationBarLayout leading_decorations( 727 LocationBarLayout leading_decorations(
703 LocationBarLayout::LEFT_EDGE, 728 LocationBarLayout::LEFT_EDGE,
704 kItemPadding - GetEditLeadingInternalSpace()); 729 kItemPadding - GetEditLeadingInternalSpace());
705 LocationBarLayout trailing_decorations(LocationBarLayout::RIGHT_EDGE, 730 LocationBarLayout trailing_decorations(LocationBarLayout::RIGHT_EDGE,
706 kItemPadding); 731 kItemPadding);
707 732
708 const int origin_chip_preferred_width = 733 const int origin_chip_preferred_width =
709 origin_chip_view_->GetPreferredSize().width(); 734 origin_chip_view_->GetPreferredSize().width();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 selected_keyword_view_->set_is_extension_icon(false); 769 selected_keyword_view_->set_is_extension_icon(false);
745 } 770 }
746 } 771 }
747 } else if (ShouldShowEVBubble()) { 772 } else if (ShouldShowEVBubble()) {
748 ev_bubble_view_->SetLabel(GetToolbarModel()->GetEVCertName()); 773 ev_bubble_view_->SetLabel(GetToolbarModel()->GetEVCertName());
749 // The largest fraction of the omnibox that can be taken by the EV bubble. 774 // The largest fraction of the omnibox that can be taken by the EV bubble.
750 const double kMaxBubbleFraction = 0.5; 775 const double kMaxBubbleFraction = 0.5;
751 leading_decorations.AddDecoration(bubble_location_y, bubble_height, false, 776 leading_decorations.AddDecoration(bubble_location_y, bubble_height, false,
752 kMaxBubbleFraction, kBubblePadding, 777 kMaxBubbleFraction, kBubblePadding,
753 kItemPadding, ev_bubble_view_); 778 kItemPadding, ev_bubble_view_);
779 } else if (ShouldShowGoodBubble()) {
780 good_bubble_view_->SetLabel(GetToolbarModel()->GetOriginDisplayName());
781 // The largest fraction of the omnibox that can be taken by the Good bubble.
782 const double kMaxBubbleFraction = 0.5;
783 leading_decorations.AddDecoration(bubble_location_y, bubble_height, false,
784 kMaxBubbleFraction, kBubblePadding,
785 kItemPadding, good_bubble_view_);
786 } else if (ShouldShowDubiousBubble()) {
787 dubious_bubble_view_->SetLabel(GetToolbarModel()->GetOriginDisplayName());
788 // The largest fraction of the omnibox that can be taken by the Dubious
789 // bubble.
790 const double kMaxBubbleFraction = 0.5;
791 leading_decorations.AddDecoration(bubble_location_y, bubble_height, false,
792 kMaxBubbleFraction, kBubblePadding,
793 kItemPadding, dubious_bubble_view_);
794 } else if (ShouldShowBadBubble()) {
795 bad_bubble_view_->SetLabel(GetToolbarModel()->GetOriginDisplayName());
796 // The largest fraction of the omnibox that can be taken by the Bad bubble.
797 const double kMaxBubbleFraction = 0.5;
798 leading_decorations.AddDecoration(bubble_location_y, bubble_height, false,
799 kMaxBubbleFraction, kBubblePadding,
800 kItemPadding, bad_bubble_view_);
754 } else if (!origin_chip_view_->visible()) { 801 } else if (!origin_chip_view_->visible()) {
755 leading_decorations.AddDecoration( 802 leading_decorations.AddDecoration(
756 vertical_edge_thickness(), location_height, 803 vertical_edge_thickness(), location_height,
757 location_icon_view_); 804 location_icon_view_);
758 } 805 }
759 806
760 if (star_view_->visible()) { 807 if (star_view_->visible()) {
761 trailing_decorations.AddDecoration( 808 trailing_decorations.AddDecoration(
762 vertical_edge_thickness(), location_height, star_view_); 809 vertical_edge_thickness(), location_height, star_view_);
763 } 810 }
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
1281 bool LocationBarView::ShouldShowKeywordBubble() const { 1328 bool LocationBarView::ShouldShowKeywordBubble() const {
1282 return !omnibox_view_->model()->keyword().empty() && 1329 return !omnibox_view_->model()->keyword().empty() &&
1283 !omnibox_view_->model()->is_keyword_hint(); 1330 !omnibox_view_->model()->is_keyword_hint();
1284 } 1331 }
1285 1332
1286 bool LocationBarView::ShouldShowEVBubble() const { 1333 bool LocationBarView::ShouldShowEVBubble() const {
1287 return !chrome::ShouldDisplayOriginChip() && 1334 return !chrome::ShouldDisplayOriginChip() &&
1288 (GetToolbarModel()->GetSecurityLevel(false) == ToolbarModel::EV_SECURE); 1335 (GetToolbarModel()->GetSecurityLevel(false) == ToolbarModel::EV_SECURE);
1289 } 1336 }
1290 1337
1338 bool LocationBarView::ShouldShowGoodBubble() const {
1339 return !chrome::ShouldDisplayOriginChip() &&
1340 (GetToolbarModel()->GetSecurityLevel(false) == ToolbarModel::SECURE);
1341 }
1342
1343 bool LocationBarView::ShouldShowDubiousBubble() const {
1344 ToolbarModel::SecurityLevel security =
1345 GetToolbarModel()->GetSecurityLevel(false);
1346 return !chrome::ShouldDisplayOriginChip() &&
1347 (security == ToolbarModel::SECURITY_POLICY_WARNING ||
1348 security == ToolbarModel::SECURITY_WARNING);
1349 }
1350
1351 bool LocationBarView::ShouldShowBadBubble() const {
1352 ToolbarModel::SecurityLevel security =
1353 GetToolbarModel()->GetSecurityLevel(false);
1354 return !chrome::ShouldDisplayOriginChip() &&
1355 (security == ToolbarModel::NONE ||
1356 security == ToolbarModel::SECURITY_ERROR);
1357 }
1358
1291 double LocationBarView::GetValueForAnimation(bool hide) const { 1359 double LocationBarView::GetValueForAnimation(bool hide) const {
1292 int calculated_offset; 1360 int calculated_offset;
1293 const gfx::Tween::Type tween_type = hide ? kHideTweenType : kShowTweenType; 1361 const gfx::Tween::Type tween_type = hide ? kHideTweenType : kShowTweenType;
1294 int start_offset = starting_omnibox_offset_, end_offset = 0; 1362 int start_offset = starting_omnibox_offset_, end_offset = 0;
1295 if (hide) 1363 if (hide)
1296 std::swap(start_offset, end_offset); 1364 std::swap(start_offset, end_offset);
1297 const int desired_offset = abs(current_omnibox_offset_); 1365 const int desired_offset = abs(current_omnibox_offset_);
1298 // Binary-search the value space (0 <= value <= 1) to find the appropriate 1366 // Binary-search the value space (0 <= value <= 1) to find the appropriate
1299 // position. We only bother to iterate to within 1/64 of the desired value, 1367 // position. We only bother to iterate to within 1/64 of the desired value,
1300 // because the longer of the two animations will only run for twelve frames 1368 // because the longer of the two animations will only run for twelve frames
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
1763 1831
1764 void LocationBarView::ModelChanged(const SearchModel::State& old_state, 1832 void LocationBarView::ModelChanged(const SearchModel::State& old_state,
1765 const SearchModel::State& new_state) { 1833 const SearchModel::State& new_state) {
1766 const bool visible = !GetToolbarModel()->input_in_progress() && 1834 const bool visible = !GetToolbarModel()->input_in_progress() &&
1767 new_state.voice_search_supported; 1835 new_state.voice_search_supported;
1768 if (mic_search_view_->visible() != visible) { 1836 if (mic_search_view_->visible() != visible) {
1769 mic_search_view_->SetVisible(visible); 1837 mic_search_view_->SetVisible(visible);
1770 Layout(); 1838 Layout();
1771 } 1839 }
1772 } 1840 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/location_bar/location_bar_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698