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

Side by Side Diff: chrome/browser/autocomplete/autocomplete_edit.cc

Issue 8600004: Adding a fourth omnibox prerender experiment. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix clang Created 9 years, 1 month 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 | « no previous file | chrome/browser/autocomplete/network_action_predictor.h » ('j') | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/autocomplete/autocomplete_edit.h" 5 #include "chrome/browser/autocomplete/autocomplete_edit.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 return true; 206 return true;
207 } 207 }
208 208
209 bool AutocompleteEditModel::AcceptCurrentInstantPreview() { 209 bool AutocompleteEditModel::AcceptCurrentInstantPreview() {
210 return InstantController::CommitIfCurrent(controller_->GetInstant()); 210 return InstantController::CommitIfCurrent(controller_->GetInstant());
211 } 211 }
212 212
213 void AutocompleteEditModel::OnChanged() { 213 void AutocompleteEditModel::OnChanged() {
214 const AutocompleteMatch current_match = CurrentMatch(); 214 const AutocompleteMatch current_match = CurrentMatch();
215 215
216 string16 suggested_text; 216 NetworkActionPredictor::Action recommended_action =
217 217 NetworkActionPredictor::ACTION_NONE;
218 // Confer with the NetworkActionPredictor to determine what action, if any,
219 // we should take. Get the recommended action here even if we don't need it
220 // so we can get stats for anyone who is opted in to UMA, but only get it if
221 // the user has actually typed something to avoid constructing it before it's
222 // needed. Note: This event is triggered as part of startup when the initial
223 // tab transitions to the start page.
224 NetworkActionPredictor* network_action_predictor = user_input_in_progress() ? 218 NetworkActionPredictor* network_action_predictor = user_input_in_progress() ?
225 profile_->GetNetworkActionPredictor() : NULL; 219 profile_->GetNetworkActionPredictor() : NULL;
226 NetworkActionPredictor::Action recommended_action = network_action_predictor ? 220 if (network_action_predictor) {
227 network_action_predictor->RecommendAction(user_text_, current_match) : 221 network_action_predictor->RegisterTransitionalMatches(user_text_,
228 NetworkActionPredictor::ACTION_NONE; 222 result());
223 // Confer with the NetworkActionPredictor to determine what action, if any,
224 // we should take. Get the recommended action here even if we don't need it
225 // so we can get stats for anyone who is opted in to UMA, but only get it if
226 // the user has actually typed something to avoid constructing it before
227 // it's needed. Note: This event is triggered as part of startup when the
228 // initial tab transitions to the start page.
229 recommended_action =
230 network_action_predictor->RecommendAction(user_text_, current_match);
231 }
232
229 UMA_HISTOGRAM_ENUMERATION("NetworkActionPredictor.Action_" + 233 UMA_HISTOGRAM_ENUMERATION("NetworkActionPredictor.Action_" +
230 prerender::GetOmniboxHistogramSuffix(), 234 prerender::GetOmniboxHistogramSuffix(),
231 recommended_action, 235 recommended_action,
232 NetworkActionPredictor::LAST_PREDICT_ACTION); 236 NetworkActionPredictor::LAST_PREDICT_ACTION);
237 string16 suggested_text;
238
233 if (DoInstant(current_match, &suggested_text)) { 239 if (DoInstant(current_match, &suggested_text)) {
234 SetSuggestedText(suggested_text, instant_complete_behavior_); 240 SetSuggestedText(suggested_text, instant_complete_behavior_);
235 } else { 241 } else {
236 switch (recommended_action) { 242 switch (recommended_action) {
237 case NetworkActionPredictor::ACTION_PRERENDER: 243 case NetworkActionPredictor::ACTION_PRERENDER:
238 DoPrerender(current_match); 244 DoPrerender(current_match);
239 break; 245 break;
240 case NetworkActionPredictor::ACTION_PRECONNECT: 246 case NetworkActionPredictor::ACTION_PRECONNECT:
241 DoPreconnect(current_match); 247 DoPreconnect(current_match);
242 break; 248 break;
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 393
388 void AutocompleteEditModel::Revert() { 394 void AutocompleteEditModel::Revert() {
389 SetInputInProgress(false); 395 SetInputInProgress(false);
390 paste_state_ = NONE; 396 paste_state_ = NONE;
391 InternalSetUserText(string16()); 397 InternalSetUserText(string16());
392 keyword_.clear(); 398 keyword_.clear();
393 is_keyword_hint_ = false; 399 is_keyword_hint_ = false;
394 has_temporary_text_ = false; 400 has_temporary_text_ = false;
395 view_->SetWindowTextAndCaretPos(permanent_text_, 401 view_->SetWindowTextAndCaretPos(permanent_text_,
396 has_focus_ ? permanent_text_.length() : 0); 402 has_focus_ ? permanent_text_.length() : 0);
403 NetworkActionPredictor* network_action_predictor =
404 profile_->GetNetworkActionPredictor();
405 if (network_action_predictor)
406 network_action_predictor->ClearTransitionalMatches();
397 } 407 }
398 408
399 void AutocompleteEditModel::StartAutocomplete( 409 void AutocompleteEditModel::StartAutocomplete(
400 bool has_selected_text, 410 bool has_selected_text,
401 bool prevent_inline_autocomplete) const { 411 bool prevent_inline_autocomplete) const {
402 bool keyword_is_selected = KeywordIsSelected(); 412 bool keyword_is_selected = KeywordIsSelected();
403 popup_->SetHoveredLine(AutocompletePopupModel::kNoMatch); 413 popup_->SetHoveredLine(AutocompletePopupModel::kNoMatch);
404 // We don't explicitly clear AutocompletePopupModel::manually_selected_match, 414 // We don't explicitly clear AutocompletePopupModel::manually_selected_match,
405 // as Start ends up invoking AutocompletePopupModel::OnResultChanged which 415 // as Start ends up invoking AutocompletePopupModel::OnResultChanged which
406 // clears it. 416 // clears it.
(...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after
1065 // static 1075 // static
1066 bool AutocompleteEditModel::IsSpaceCharForAcceptingKeyword(wchar_t c) { 1076 bool AutocompleteEditModel::IsSpaceCharForAcceptingKeyword(wchar_t c) {
1067 switch (c) { 1077 switch (c) {
1068 case 0x0020: // Space 1078 case 0x0020: // Space
1069 case 0x3000: // Ideographic Space 1079 case 0x3000: // Ideographic Space
1070 return true; 1080 return true;
1071 default: 1081 default:
1072 return false; 1082 return false;
1073 } 1083 }
1074 } 1084 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/autocomplete/network_action_predictor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698