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

Side by Side Diff: chrome/browser/ui/omnibox/omnibox_edit_model.cc

Issue 768413003: TEST ONLY - DO NOT SUBMIT - FOR TRYBOTS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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/omnibox/omnibox_edit_model.h" 5 #include "chrome/browser/ui/omnibox/omnibox_edit_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 return State( 247 return State(
248 user_input_in_progress_, user_text_, view_->GetGrayTextAutocompletion(), 248 user_input_in_progress_, user_text_, view_->GetGrayTextAutocompletion(),
249 keyword_, is_keyword_hint_, 249 keyword_, is_keyword_hint_,
250 controller_->GetToolbarModel()->url_replacement_enabled(), 250 controller_->GetToolbarModel()->url_replacement_enabled(),
251 focus_state_, focus_source_, input_); 251 focus_state_, focus_source_, input_);
252 } 252 }
253 253
254 void OmniboxEditModel::RestoreState(const State* state) { 254 void OmniboxEditModel::RestoreState(const State* state) {
255 // We need to update the permanent text correctly and revert the view 255 // We need to update the permanent text correctly and revert the view
256 // regardless of whether there is saved state. 256 // regardless of whether there is saved state.
257 bool url_replacement_enabled = !state || state->url_replacement_enabled; 257 bool url_replacement_enabled = !state || state->url_replacement_enabled;
Justin Donnelly 2014/12/03 16:07:25 One of the reasons I thought it would be helpful t
Peter Kasting 2014/12/04 00:23:19 Yes, but given that the origin chip and search but
Justin Donnelly 2014/12/04 00:54:43 I think search term replacement is actually launch
Peter Kasting 2014/12/04 01:44:31 I would be very surprised if this code is used on
groby-ooo-7-16 2015/01/10 00:54:06 Filed as http://crbug.com/447810
258 controller_->GetToolbarModel()->set_url_replacement_enabled( 258 controller_->GetToolbarModel()->set_url_replacement_enabled(
259 url_replacement_enabled); 259 url_replacement_enabled);
260 controller_->GetToolbarModel()->set_origin_chip_enabled(
261 url_replacement_enabled);
262 permanent_text_ = controller_->GetToolbarModel()->GetText(); 260 permanent_text_ = controller_->GetToolbarModel()->GetText();
263 // Don't muck with the search term replacement state, as we've just set it 261 // Don't muck with the search term replacement state, as we've just set it
264 // correctly. 262 // correctly.
265 view_->RevertWithoutResettingSearchTermReplacement(); 263 view_->RevertWithoutResettingSearchTermReplacement();
266 // Restore the autocomplete controller's input, or clear it if this is a new 264 // Restore the autocomplete controller's input, or clear it if this is a new
267 // tab. 265 // tab.
268 input_ = state ? state->autocomplete_input : AutocompleteInput(); 266 input_ = state ? state->autocomplete_input : AutocompleteInput();
269 if (!state) 267 if (!state)
270 return; 268 return;
271 269
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 if (user_input_in_progress_ == in_progress) 509 if (user_input_in_progress_ == in_progress)
512 return; 510 return;
513 511
514 user_input_in_progress_ = in_progress; 512 user_input_in_progress_ = in_progress;
515 if (user_input_in_progress_) { 513 if (user_input_in_progress_) {
516 time_user_first_modified_omnibox_ = base::TimeTicks::Now(); 514 time_user_first_modified_omnibox_ = base::TimeTicks::Now();
517 content::RecordAction(base::UserMetricsAction("OmniboxInputInProgress")); 515 content::RecordAction(base::UserMetricsAction("OmniboxInputInProgress"));
518 autocomplete_controller()->ResetSession(); 516 autocomplete_controller()->ResetSession();
519 } 517 }
520 518
521 // The following code handles two cases:
522 // * For HIDE_ON_USER_INPUT and ON_SRP, it hides the chip when user input
523 // begins.
524 // * For HIDE_ON_MOUSE_RELEASE, which only hides the chip on mouse release if
525 // the omnibox is empty, it handles the "omnibox was not empty" case by
526 // acting like HIDE_ON_USER_INPUT.
527 if (chrome::ShouldDisplayOriginChip() && in_progress)
528 controller()->GetToolbarModel()->set_origin_chip_enabled(false);
529
530 controller_->GetToolbarModel()->set_input_in_progress(in_progress); 519 controller_->GetToolbarModel()->set_input_in_progress(in_progress);
531 controller_->EndOriginChipAnimations(true);
532 controller_->Update(NULL); 520 controller_->Update(NULL);
533 521
534 if (user_input_in_progress_ || !in_revert_) 522 if (user_input_in_progress_ || !in_revert_)
535 delegate_->OnInputStateChanged(); 523 delegate_->OnInputStateChanged();
536 } 524 }
537 525
538 void OmniboxEditModel::Revert() { 526 void OmniboxEditModel::Revert() {
539 SetInputInProgress(false); 527 SetInputInProgress(false);
540 paste_state_ = NONE; 528 paste_state_ = NONE;
541 InternalSetUserText(base::string16()); 529 InternalSetUserText(base::string16());
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
986 } 974 }
987 } 975 }
988 976
989 // We do not clear the pending entry from the omnibox when a load is first 977 // We do not clear the pending entry from the omnibox when a load is first
990 // stopped. If the user presses Escape while stopped, we clear it. 978 // stopped. If the user presses Escape while stopped, we clear it.
991 if (delegate_->CurrentPageExists() && !delegate_->IsLoading()) { 979 if (delegate_->CurrentPageExists() && !delegate_->IsLoading()) {
992 delegate_->GetNavigationController().DiscardNonCommittedEntries(); 980 delegate_->GetNavigationController().DiscardNonCommittedEntries();
993 view_->Update(); 981 view_->Update();
994 } 982 }
995 983
996 // When using the origin chip, hitting escape to revert all should either
997 // display the URL (when search term replacement would not be performed for
998 // this page) or the search terms (when it would). To accomplish this,
999 // we'll need to disable URL replacement iff it's currently enabled and
1000 // search term replacement wouldn't normally happen.
1001 bool should_disable_url_replacement =
1002 controller_->GetToolbarModel()->url_replacement_enabled() &&
1003 !controller_->GetToolbarModel()->WouldPerformSearchTermReplacement(true);
1004
1005 // If the user wasn't editing, but merely had focus in the edit, allow <esc> 984 // If the user wasn't editing, but merely had focus in the edit, allow <esc>
1006 // to be processed as an accelerator, so it can still be used to stop a load. 985 // to be processed as an accelerator, so it can still be used to stop a load.
1007 // When the permanent text isn't all selected we still fall through to the 986 // When the permanent text isn't all selected we still fall through to the
1008 // SelectAll() call below so users can arrow around in the text and then hit 987 // SelectAll() call below so users can arrow around in the text and then hit
1009 // <esc> to quickly replace all the text; this matches IE. 988 // <esc> to quickly replace all the text; this matches IE.
1010 const bool has_zero_suggest_match = match.provider && 989 const bool has_zero_suggest_match = match.provider &&
1011 (match.provider->type() == AutocompleteProvider::TYPE_ZERO_SUGGEST); 990 (match.provider->type() == AutocompleteProvider::TYPE_ZERO_SUGGEST);
1012 if (!has_zero_suggest_match && !should_disable_url_replacement && 991 if (!has_zero_suggest_match && !user_input_in_progress_ &&
1013 !user_input_in_progress_ && view_->IsSelectAll()) 992 view_->IsSelectAll())
1014 return false; 993 return false;
1015 994
1016 if (!user_text_.empty()) { 995 if (!user_text_.empty()) {
1017 UMA_HISTOGRAM_ENUMERATION(kOmniboxUserTextClearedHistogram, 996 UMA_HISTOGRAM_ENUMERATION(kOmniboxUserTextClearedHistogram,
1018 OMNIBOX_USER_TEXT_CLEARED_WITH_ESCAPE, 997 OMNIBOX_USER_TEXT_CLEARED_WITH_ESCAPE,
1019 OMNIBOX_USER_TEXT_CLEARED_NUM_OF_ITEMS); 998 OMNIBOX_USER_TEXT_CLEARED_NUM_OF_ITEMS);
1020 } 999 }
1021 1000
1022 if (should_disable_url_replacement) { 1001 view_->RevertAll();
1023 controller_->GetToolbarModel()->set_url_replacement_enabled(false);
1024 UpdatePermanentText();
1025 }
1026 view_->RevertWithoutResettingSearchTermReplacement();
1027 view_->SelectAll(true); 1002 view_->SelectAll(true);
1028 return true; 1003 return true;
1029 } 1004 }
1030 1005
1031 void OmniboxEditModel::OnControlKeyChanged(bool pressed) { 1006 void OmniboxEditModel::OnControlKeyChanged(bool pressed) {
1032 if (pressed == (control_key_state_ == UP)) 1007 if (pressed == (control_key_state_ == UP))
1033 control_key_state_ = pressed ? DOWN_WITHOUT_CHANGE : UP; 1008 control_key_state_ = pressed ? DOWN_WITHOUT_CHANGE : UP;
1034 } 1009 }
1035 1010
1036 void OmniboxEditModel::OnPaste() { 1011 void OmniboxEditModel::OnPaste() {
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
1474 // Update state and notify view if the omnibox has focus and the caret 1449 // Update state and notify view if the omnibox has focus and the caret
1475 // visibility changed. 1450 // visibility changed.
1476 const bool was_caret_visible = is_caret_visible(); 1451 const bool was_caret_visible = is_caret_visible();
1477 focus_state_ = state; 1452 focus_state_ = state;
1478 if (focus_state_ != OMNIBOX_FOCUS_NONE && 1453 if (focus_state_ != OMNIBOX_FOCUS_NONE &&
1479 is_caret_visible() != was_caret_visible) 1454 is_caret_visible() != was_caret_visible)
1480 view_->ApplyCaretVisibility(); 1455 view_->ApplyCaretVisibility();
1481 1456
1482 delegate_->OnFocusChanged(focus_state_, reason); 1457 delegate_->OnFocusChanged(focus_state_, reason);
1483 } 1458 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698