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

Side by Side Diff: chrome/browser/ui/search/instant_controller.cc

Issue 13905008: Merge local_omnibox_popup into local_ntp. Render the Google logo and fakebox if Google is the sear… (Closed) Base URL: https://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 8 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
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/search/instant_controller.h" 5 #include "chrome/browser/ui/search/instant_controller.h"
6 6
7 #include "base/metrics/histogram.h" 7 #include "base/metrics/histogram.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/stringprintf.h" 9 #include "base/stringprintf.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 455
456 if (!UseInstantTabToShowSuggestions()) { 456 if (!UseInstantTabToShowSuggestions()) {
457 if (first_interaction_time_.is_null()) 457 if (first_interaction_time_.is_null())
458 first_interaction_time_ = base::Time::Now(); 458 first_interaction_time_ = base::Time::Now();
459 allow_overlay_to_show_search_suggestions_ = true; 459 allow_overlay_to_show_search_suggestions_ = true;
460 460
461 // For extended mode, if the loader is not ready at this point, switch over 461 // For extended mode, if the loader is not ready at this point, switch over
462 // to a backup loader. 462 // to a backup loader.
463 if (extended_enabled_ && !overlay_->supports_instant() && 463 if (extended_enabled_ && !overlay_->supports_instant() &&
464 !overlay_->IsLocalOverlay() && browser_->GetActiveWebContents()) { 464 !overlay_->IsLocalOverlay() && browser_->GetActiveWebContents()) {
465 CreateOverlay(chrome::kChromeSearchLocalOmniboxPopupURL, 465 CreateOverlay(chrome::kChromeSearchLocalNtpUrl,
samarth 2013/04/15 19:01:34 Replace this (and below) with a GetLocalInstantURL
jeremycho 2013/04/16 01:42:37 Done.
466 browser_->GetActiveWebContents()); 466 browser_->GetActiveWebContents());
467 } 467 }
468 468
469 overlay_->Update(extended_enabled_ ? user_text : full_text, 469 overlay_->Update(extended_enabled_ ? user_text : full_text,
470 selection_start, selection_end, verbatim); 470 selection_start, selection_end, verbatim);
471 } 471 }
472 472
473 content::NotificationService::current()->Notify( 473 content::NotificationService::current()->Notify(
474 chrome::NOTIFICATION_INSTANT_CONTROLLER_UPDATED, 474 chrome::NOTIFICATION_INSTANT_CONTROLLER_UPDATED,
475 content::Source<InstantController>(this), 475 content::Source<InstantController>(this),
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 LOG_INSTANT_DEBUG_EVENT(this, base::StringPrintf( 663 LOG_INSTANT_DEBUG_EVENT(this, base::StringPrintf(
664 "CommitIfPossible: type=%d last_omnibox_text_='%s' " 664 "CommitIfPossible: type=%d last_omnibox_text_='%s' "
665 "last_match_was_search_=%d instant_tab_=%d", type, 665 "last_match_was_search_=%d instant_tab_=%d", type,
666 UTF16ToUTF8(last_omnibox_text_).c_str(), last_match_was_search_, 666 UTF16ToUTF8(last_omnibox_text_).c_str(), last_match_was_search_,
667 instant_tab_ != NULL)); 667 instant_tab_ != NULL));
668 668
669 // If we are on an already committed search results page, send a submit event 669 // If we are on an already committed search results page, send a submit event
670 // to the page, but otherwise, nothing else to do. 670 // to the page, but otherwise, nothing else to do.
671 if (UseInstantTabToShowSuggestions()) { 671 if (UseInstantTabToShowSuggestions()) {
672 if (type == INSTANT_COMMIT_PRESSED_ENTER && 672 if (type == INSTANT_COMMIT_PRESSED_ENTER &&
673 !instant_tab_->IsLocalNTP() &&
673 (last_match_was_search_ || 674 (last_match_was_search_ ||
674 last_suggestion_.behavior == INSTANT_COMPLETE_NEVER)) { 675 last_suggestion_.behavior == INSTANT_COMPLETE_NEVER)) {
675 last_suggestion_.text.clear(); 676 last_suggestion_.text.clear();
676 instant_tab_->Submit(last_omnibox_text_); 677 instant_tab_->Submit(last_omnibox_text_);
677 instant_tab_->contents()->GetView()->Focus(); 678 instant_tab_->contents()->GetView()->Focus();
678 EnsureSearchTermsAreSet(instant_tab_->contents(), last_omnibox_text_); 679 EnsureSearchTermsAreSet(instant_tab_->contents(), last_omnibox_text_);
679 return true; 680 return true;
680 } 681 }
681 return false; 682 return false;
682 } 683 }
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
922 #if defined(USE_AURA) 923 #if defined(USE_AURA)
923 // On aura the omnibox only receives a focus lost if we initiate the focus 924 // On aura the omnibox only receives a focus lost if we initiate the focus
924 // change. This does that. 925 // change. This does that.
925 if (!model_.mode().is_default()) 926 if (!model_.mode().is_default())
926 browser_->InstantOverlayFocused(); 927 browser_->InstantOverlayFocused();
927 #endif 928 #endif
928 } 929 }
929 930
930 void InstantController::ReloadOverlayIfStale() { 931 void InstantController::ReloadOverlayIfStale() {
931 // The local overlay is never stale. 932 // The local overlay is never stale.
932 if (overlay_ && overlay_->IsLocalOverlay()) 933 if (overlay_ && overlay_->IsLocalOverlay())
samarth 2013/04/15 19:01:34 Replace all instances of IsLocalOverlay with IsLoc
jeremycho 2013/04/16 01:42:37 Done. Will do the rename in a followup.
933 return; 934 return;
934 935
935 // If the overlay is showing or the omnibox has focus, don't delete the 936 // If the overlay is showing or the omnibox has focus, don't delete the
936 // overlay. It will get refreshed the next time the overlay is hidden or the 937 // overlay. It will get refreshed the next time the overlay is hidden or the
937 // omnibox loses focus. 938 // omnibox loses focus.
938 if ((!overlay_ || overlay_->is_stale()) && 939 if ((!overlay_ || overlay_->is_stale()) &&
939 omnibox_focus_state_ == OMNIBOX_FOCUS_NONE && 940 omnibox_focus_state_ == OMNIBOX_FOCUS_NONE &&
940 model_.mode().is_default()) { 941 model_.mode().is_default()) {
941 overlay_.reset(); 942 overlay_.reset();
942 EnsureOverlayIsCurrent(false); 943 EnsureOverlayIsCurrent(false);
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
1261 else if (!IsViewInContents(GetViewGainingFocus(view_gaining_focus), 1262 else if (!IsViewInContents(GetViewGainingFocus(view_gaining_focus),
1262 overlay_->contents())) 1263 overlay_->contents()))
1263 HideOverlay(); 1264 HideOverlay();
1264 #endif 1265 #endif
1265 } 1266 }
1266 1267
1267 void InstantController::ResetNTP(bool ignore_blacklist, bool use_local_ntp) { 1268 void InstantController::ResetNTP(bool ignore_blacklist, bool use_local_ntp) {
1268 std::string instant_url; 1269 std::string instant_url;
1269 if (use_local_ntp || 1270 if (use_local_ntp ||
1270 !GetInstantURL(browser_->profile(), ignore_blacklist, &instant_url)) 1271 !GetInstantURL(browser_->profile(), ignore_blacklist, &instant_url))
1271 instant_url = chrome::kChromeSearchLocalNtpUrl; 1272 instant_url = chrome::kChromeSearchLocalNtpUrl;
samarth 2013/04/15 19:01:34 Use the GetLocalInstantURL() function here too.
jeremycho 2013/04/16 01:42:37 Done.
1272 ntp_.reset(new InstantNTP(this, instant_url)); 1273 ntp_.reset(new InstantNTP(this, instant_url));
1273 ntp_->InitContents(browser_->profile(), browser_->GetActiveWebContents(), 1274 ntp_->InitContents(browser_->profile(), browser_->GetActiveWebContents(),
1274 base::Bind(&InstantController::ResetNTP, 1275 base::Bind(&InstantController::ResetNTP,
1275 base::Unretained(this), false, false)); 1276 base::Unretained(this), false, false));
1276 } 1277 }
1277 1278
1278 bool InstantController::EnsureOverlayIsCurrent(bool ignore_blacklist) { 1279 bool InstantController::EnsureOverlayIsCurrent(bool ignore_blacklist) {
1279 // If there's no active tab, the browser is closing. 1280 // If there's no active tab, the browser is closing.
1280 const content::WebContents* active_tab = browser_->GetActiveWebContents(); 1281 const content::WebContents* active_tab = browser_->GetActiveWebContents();
1281 if (!active_tab) 1282 if (!active_tab)
1282 return false; 1283 return false;
1283 1284
1284 Profile* profile = Profile::FromBrowserContext( 1285 Profile* profile = Profile::FromBrowserContext(
1285 active_tab->GetBrowserContext()); 1286 active_tab->GetBrowserContext());
1286 std::string instant_url; 1287 std::string instant_url;
1287 if (!GetInstantURL(profile, ignore_blacklist, &instant_url)) { 1288 if (!GetInstantURL(profile, ignore_blacklist, &instant_url)) {
1288 // If we are in extended mode, fallback to the local overlay. 1289 // If we are in extended mode, fallback to the local overlay.
1289 if (extended_enabled_) 1290 if (extended_enabled_)
1290 instant_url = chrome::kChromeSearchLocalOmniboxPopupURL; 1291 instant_url = chrome::kChromeSearchLocalNtpUrl;
samarth 2013/04/15 19:01:34 Use the GetLocalInstantURL() function here too.
jeremycho 2013/04/16 01:42:37 Done.
1291 else 1292 else
1292 return false; 1293 return false;
1293 } 1294 }
1294 1295
1295 if (!overlay_ || overlay_->instant_url() != instant_url) 1296 if (!overlay_ || overlay_->instant_url() != instant_url)
1296 CreateOverlay(instant_url, active_tab); 1297 CreateOverlay(instant_url, active_tab);
1297 1298
1298 return true; 1299 return true;
1299 } 1300 }
1300 1301
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
1607 // suggest 'nstant'. Otherwise, the user text really isn't a prefix, so 1608 // suggest 'nstant'. Otherwise, the user text really isn't a prefix, so
1608 // suggest nothing. 1609 // suggest nothing.
1609 // TODO(samarth|jered): revisit this logic. http://crbug.com/196572. 1610 // TODO(samarth|jered): revisit this logic. http://crbug.com/196572.
1610 return true; 1611 return true;
1611 } 1612 }
1612 } 1613 }
1613 1614
1614 return false; 1615 return false;
1615 } 1616 }
1616 1617
1617 bool InstantController::UseInstantTabToShowSuggestions() const { 1618 bool InstantController::UseInstantTabToShowSuggestions() const {
samarth 2013/04/15 19:01:34 You can just inline this check wherever this funct
jeremycho 2013/04/16 01:42:37 Done.
1618 return instant_tab_ && !instant_tab_->IsLocalNTP(); 1619 return instant_tab_;
1619 } 1620 }
1620 1621
1621 bool InstantController::ShouldSwitchToLocalNTP() const { 1622 bool InstantController::ShouldSwitchToLocalNTP() const {
1622 // If there is no Instant URL or the NTP is stale, switch. 1623 // If there is no Instant URL or the NTP is stale, switch.
1623 std::string instant_url; 1624 std::string instant_url;
1624 if (!GetInstantURL(browser_->profile(), false, &instant_url) || 1625 if (!GetInstantURL(browser_->profile(), false, &instant_url) ||
1625 !chrome::MatchesOriginAndPath(GURL(ntp_->instant_url()), 1626 !chrome::MatchesOriginAndPath(GURL(ntp_->instant_url()),
1626 GURL(instant_url))) { 1627 GURL(instant_url))) {
1627 return true; 1628 return true;
1628 } 1629 }
1629 1630
1630 if (ntp_->supports_instant()) 1631 if (ntp_->supports_instant())
1631 return false; 1632 return false;
1632 1633
1633 // If this is not window startup, switch. 1634 // If this is not window startup, switch.
1634 // TODO(shishir): This is not completely reliable. Find a better way to detect 1635 // TODO(shishir): This is not completely reliable. Find a better way to detect
1635 // startup time. 1636 // startup time.
1636 if (browser_->GetActiveWebContents()) 1637 if (browser_->GetActiveWebContents())
1637 return true; 1638 return true;
1638 1639
1639 return chrome::IsAggressiveLocalNTPFallbackEnabled(); 1640 return chrome::IsAggressiveLocalNTPFallbackEnabled();
1640 } 1641 }
OLDNEW
« chrome/browser/search/local_ntp_source.cc ('K') | « chrome/browser/search/local_ntp_source.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698