| 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/search/search.h" | 5 #include "chrome/browser/search/search.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 | 404 |
| 405 bool NavEntryIsInstantNTP(const content::WebContents* contents, | 405 bool NavEntryIsInstantNTP(const content::WebContents* contents, |
| 406 const content::NavigationEntry* entry) { | 406 const content::NavigationEntry* entry) { |
| 407 if (!contents || !entry || !IsInstantExtendedAPIEnabled()) | 407 if (!contents || !entry || !IsInstantExtendedAPIEnabled()) |
| 408 return false; | 408 return false; |
| 409 | 409 |
| 410 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext()); | 410 Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext()); |
| 411 if (!IsRenderedInInstantProcess(contents, profile)) | 411 if (!IsRenderedInInstantProcess(contents, profile)) |
| 412 return false; | 412 return false; |
| 413 | 413 |
| 414 if (entry->GetURL() == GURL(chrome::kChromeSearchLocalNtpUrl)) | 414 return IsInstantNTPURL(entry->GetURL(), profile); |
| 415 } |
| 416 |
| 417 bool IsInstantNTPURL(const GURL& url, Profile* profile) { |
| 418 if (!IsInstantExtendedAPIEnabled()) |
| 419 return false; |
| 420 |
| 421 if (url == GURL(chrome::kChromeSearchLocalNtpUrl)) |
| 415 return true; | 422 return true; |
| 416 | 423 |
| 417 GURL new_tab_url(GetNewTabPageURL(profile)); | 424 GURL new_tab_url(GetNewTabPageURL(profile)); |
| 418 return new_tab_url.is_valid() && | 425 return new_tab_url.is_valid() && MatchesOriginAndPath(url, new_tab_url); |
| 419 MatchesOriginAndPath(entry->GetURL(), new_tab_url); | |
| 420 } | 426 } |
| 421 | 427 |
| 422 bool IsSuggestPrefEnabled(Profile* profile) { | 428 bool IsSuggestPrefEnabled(Profile* profile) { |
| 423 return profile && !profile->IsOffTheRecord() && profile->GetPrefs() && | 429 return profile && !profile->IsOffTheRecord() && profile->GetPrefs() && |
| 424 profile->GetPrefs()->GetBoolean(prefs::kSearchSuggestEnabled); | 430 profile->GetPrefs()->GetBoolean(prefs::kSearchSuggestEnabled); |
| 425 } | 431 } |
| 426 | 432 |
| 427 GURL GetInstantURL(Profile* profile, bool force_instant_results) { | 433 GURL GetInstantURL(Profile* profile, bool force_instant_results) { |
| 428 if (!IsInstantExtendedAPIEnabled() || !IsSuggestPrefEnabled(profile)) | 434 if (!IsInstantExtendedAPIEnabled() || !IsSuggestPrefEnabled(profile)) |
| 429 return GURL(); | 435 return GURL(); |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 bool HandleNewTabURLReverseRewrite(GURL* url, | 562 bool HandleNewTabURLReverseRewrite(GURL* url, |
| 557 content::BrowserContext* browser_context) { | 563 content::BrowserContext* browser_context) { |
| 558 if (!IsInstantExtendedAPIEnabled()) | 564 if (!IsInstantExtendedAPIEnabled()) |
| 559 return false; | 565 return false; |
| 560 | 566 |
| 561 // Do nothing in incognito. | 567 // Do nothing in incognito. |
| 562 Profile* profile = Profile::FromBrowserContext(browser_context); | 568 Profile* profile = Profile::FromBrowserContext(browser_context); |
| 563 if (profile && profile->IsOffTheRecord()) | 569 if (profile && profile->IsOffTheRecord()) |
| 564 return false; | 570 return false; |
| 565 | 571 |
| 566 if (MatchesOriginAndPath(GURL(chrome::kChromeSearchLocalNtpUrl), *url)) { | 572 if (IsInstantNTPURL(*url, profile)) { |
| 567 *url = GURL(chrome::kChromeUINewTabURL); | 573 *url = GURL(chrome::kChromeUINewTabURL); |
| 568 return true; | 574 return true; |
| 569 } | 575 } |
| 570 | |
| 571 GURL new_tab_url(GetNewTabPageURL(profile)); | |
| 572 if (new_tab_url.is_valid() && MatchesOriginAndPath(new_tab_url, *url)) { | |
| 573 *url = GURL(chrome::kChromeUINewTabURL); | |
| 574 return true; | |
| 575 } | |
| 576 | 576 |
| 577 return false; | 577 return false; |
| 578 } | 578 } |
| 579 | 579 |
| 580 void SetInstantSupportStateInNavigationEntry(InstantSupportState state, | 580 void SetInstantSupportStateInNavigationEntry(InstantSupportState state, |
| 581 content::NavigationEntry* entry) { | 581 content::NavigationEntry* entry) { |
| 582 if (!entry) | 582 if (!entry) |
| 583 return; | 583 return; |
| 584 | 584 |
| 585 entry->SetExtraData(kInstantSupportStateKey, | 585 entry->SetExtraData(kInstantSupportStateKey, |
| (...skipping 21 matching lines...) Expand all Loading... |
| 607 kUseAltInstantURL, false, flags); | 607 kUseAltInstantURL, false, flags); |
| 608 } | 608 } |
| 609 | 609 |
| 610 bool ShouldUseSearchPathForInstant() { | 610 bool ShouldUseSearchPathForInstant() { |
| 611 FieldTrialFlags flags; | 611 FieldTrialFlags flags; |
| 612 return GetFieldTrialInfo(&flags) && GetBoolValueForFlagWithDefault( | 612 return GetFieldTrialInfo(&flags) && GetBoolValueForFlagWithDefault( |
| 613 kUseSearchPathForInstant, false, flags); | 613 kUseSearchPathForInstant, false, flags); |
| 614 } | 614 } |
| 615 | 615 |
| 616 } // namespace search | 616 } // namespace search |
| OLD | NEW |