| OLD | NEW |
| 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 <iterator> | 7 #include <iterator> |
| 8 | 8 |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 528 // suggestion or reset the existing "gray text". | 528 // suggestion or reset the existing "gray text". |
| 529 browser_->SetInstantSuggestion(last_suggestion_); | 529 browser_->SetInstantSuggestion(last_suggestion_); |
| 530 | 530 |
| 531 // Record the time of the first keypress for logging histograms. | 531 // Record the time of the first keypress for logging histograms. |
| 532 if (!first_interaction_time_recorded_ && first_interaction_time_.is_null()) | 532 if (!first_interaction_time_recorded_ && first_interaction_time_.is_null()) |
| 533 first_interaction_time_ = base::Time::Now(); | 533 first_interaction_time_ = base::Time::Now(); |
| 534 | 534 |
| 535 return true; | 535 return true; |
| 536 } | 536 } |
| 537 | 537 |
| 538 bool InstantController::WillFetchCompletions() const { | |
| 539 if (!extended_enabled()) | |
| 540 return false; | |
| 541 | |
| 542 return !UsingLocalPage(); | |
| 543 } | |
| 544 | |
| 545 scoped_ptr<content::WebContents> InstantController::ReleaseNTPContents() { | 538 scoped_ptr<content::WebContents> InstantController::ReleaseNTPContents() { |
| 546 if (!extended_enabled() || !browser_->profile() || | 539 if (!extended_enabled() || !browser_->profile() || |
| 547 browser_->profile()->IsOffTheRecord()) | 540 browser_->profile()->IsOffTheRecord()) |
| 548 return scoped_ptr<content::WebContents>(); | 541 return scoped_ptr<content::WebContents>(); |
| 549 | 542 |
| 550 LOG_INSTANT_DEBUG_EVENT(this, "ReleaseNTPContents"); | 543 LOG_INSTANT_DEBUG_EVENT(this, "ReleaseNTPContents"); |
| 551 | 544 |
| 552 if (ShouldSwitchToLocalNTP()) | 545 if (ShouldSwitchToLocalNTP()) |
| 553 ResetNTP(GetLocalInstantURL()); | 546 ResetNTP(GetLocalInstantURL()); |
| 554 | 547 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 return; | 596 return; |
| 604 | 597 |
| 605 if (!UseTabForSuggestions() && !overlay_) | 598 if (!UseTabForSuggestions() && !overlay_) |
| 606 return; | 599 return; |
| 607 | 600 |
| 608 // The omnibox sends suggestions when its possibly imaginary popup closes | 601 // The omnibox sends suggestions when its possibly imaginary popup closes |
| 609 // as it stops autocomplete. Ignore these. | 602 // as it stops autocomplete. Ignore these. |
| 610 if (omnibox_focus_state_ == OMNIBOX_FOCUS_NONE) | 603 if (omnibox_focus_state_ == OMNIBOX_FOCUS_NONE) |
| 611 return; | 604 return; |
| 612 | 605 |
| 613 for (ACProviders::const_iterator provider = providers.begin(); | |
| 614 provider != providers.end(); ++provider) { | |
| 615 const bool from_search_provider = | |
| 616 (*provider)->type() == AutocompleteProvider::TYPE_SEARCH; | |
| 617 | |
| 618 // TODO(jeremycho): Pass search_provider() as a parameter to this function | |
| 619 // and remove the static cast. | |
| 620 const bool provider_done = from_search_provider ? | |
| 621 static_cast<SearchProvider*>(*provider)->IsNonInstantSearchDone() : | |
| 622 (*provider)->done(); | |
| 623 if (!provider_done) { | |
| 624 DVLOG(1) << "Waiting for " << (*provider)->GetName(); | |
| 625 return; | |
| 626 } | |
| 627 } | |
| 628 | |
| 629 DVLOG(1) << "AutocompleteResults:"; | 606 DVLOG(1) << "AutocompleteResults:"; |
| 630 std::vector<InstantAutocompleteResult> results; | 607 std::vector<InstantAutocompleteResult> results; |
| 631 if (UsingLocalPage()) { | 608 if (UsingLocalPage()) { |
| 632 for (AutocompleteResult::const_iterator match(autocomplete_result.begin()); | 609 for (AutocompleteResult::const_iterator match(autocomplete_result.begin()); |
| 633 match != autocomplete_result.end(); ++match) { | 610 match != autocomplete_result.end(); ++match) { |
| 634 InstantAutocompleteResult result; | 611 InstantAutocompleteResult result; |
| 635 PopulateInstantAutocompleteResultFromMatch( | 612 PopulateInstantAutocompleteResultFromMatch( |
| 636 *match, std::distance(autocomplete_result.begin(), match), &result); | 613 *match, std::distance(autocomplete_result.begin(), match), &result); |
| 637 results.push_back(result); | 614 results.push_back(result); |
| 638 } | 615 } |
| (...skipping 1225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1864 result->transition = match.transition; | 1841 result->transition = match.transition; |
| 1865 result->relevance = match.relevance; | 1842 result->relevance = match.relevance; |
| 1866 result->autocomplete_match_index = autocomplete_match_index; | 1843 result->autocomplete_match_index = autocomplete_match_index; |
| 1867 | 1844 |
| 1868 DVLOG(1) << " " << result->relevance << " " | 1845 DVLOG(1) << " " << result->relevance << " " |
| 1869 << UTF8ToUTF16(AutocompleteMatchType::ToString(result->type)) << " " | 1846 << UTF8ToUTF16(AutocompleteMatchType::ToString(result->type)) << " " |
| 1870 << result->provider << " " << result->destination_url << " '" | 1847 << result->provider << " " << result->destination_url << " '" |
| 1871 << result->description << "' '" << result->search_query << "' " | 1848 << result->description << "' '" << result->search_query << "' " |
| 1872 << result->transition << " " << result->autocomplete_match_index; | 1849 << result->transition << " " << result->autocomplete_match_index; |
| 1873 } | 1850 } |
| OLD | NEW |