Index: chrome/browser/ui/browser_navigator.cc |
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc |
index ad0a54163d3cd15e40b1e1e328da00627fd02dd4..fe244cb8005a588f857c300a211a9faaf4139c0b 100644 |
--- a/chrome/browser/ui/browser_navigator.cc |
+++ b/chrome/browser/ui/browser_navigator.cc |
@@ -71,36 +71,37 @@ bool CompareURLsWithReplacements( |
} |
// Change some of the navigation parameters based on the particular URL. |
-// Currently this applies to chrome://settings, the bookmark manager, |
-// and chrome://extensions, which we always want to open in a normal |
-// (not incognito) window. Guest session is an exception. |
+// Currently this applies to some chrome:// pages which we always want to open |
+// in a normal (not incognito) window. Guest session is an exception. |
James Hawkins
2011/11/17 02:23:53
s/normal (non incognito)/non-incognito/
James Hawkins
2011/11/17 02:23:53
While you're here, can you clarify the guest sessi
binji
2011/11/17 21:02:09
Done.
binji
2011/11/17 21:02:09
Done.
|
// chrome://extensions is on the list because it redirects to |
// chrome://settings. |
// Returns true on success. Otherwise, if changing params leads the browser into |
// an erroneous state, returns false. |
bool AdjustNavigateParamsForURL(browser::NavigateParams* params) { |
- if (!params->target_contents && |
- browser::IsURLAllowedInIncognito(params->url)) { |
- Profile* profile = |
- params->browser ? params->browser->profile() : params->profile; |
- |
- if ((profile->IsOffTheRecord() && !Profile::IsGuestSession()) || |
- params->disposition == OFF_THE_RECORD) { |
- profile = profile->GetOriginalProfile(); |
- |
- // If incognito is forced, we punt. |
- PrefService* prefs = profile->GetPrefs(); |
- if (prefs && IncognitoModePrefs::GetAvailability(prefs) == |
- IncognitoModePrefs::FORCED) { |
- return false; |
- } |
+ if (params->target_contents != NULL || |
binji
2011/11/17 01:23:51
I think it is clearer to early out here.
James Hawkins
2011/11/17 02:23:53
Always and forever.
|
+ browser::IsURLAllowedInIncognito(params->url)) |
+ return true; |
+ |
+ Profile* profile = |
+ params->browser ? params->browser->profile() : params->profile; |
- params->disposition = SINGLETON_TAB; |
- params->profile = profile; |
- params->browser = Browser::GetOrCreateTabbedBrowser(profile); |
- params->window_action = browser::NavigateParams::SHOW_WINDOW; |
+ if ((profile->IsOffTheRecord() && !Profile::IsGuestSession()) || |
+ params->disposition == OFF_THE_RECORD) { |
+ profile = profile->GetOriginalProfile(); |
+ |
+ // If incognito is forced, we punt. |
+ PrefService* prefs = profile->GetPrefs(); |
+ if (prefs && IncognitoModePrefs::GetAvailability(prefs) == |
+ IncognitoModePrefs::FORCED) { |
+ return false; |
} |
+ |
+ params->disposition = SINGLETON_TAB; |
+ params->profile = profile; |
+ params->browser = Browser::GetOrCreateTabbedBrowser(profile); |
+ params->window_action = browser::NavigateParams::SHOW_WINDOW; |
} |
+ |
return true; |
} |
@@ -632,10 +633,12 @@ int GetIndexOfSingletonTab(browser::NavigateParams* params) { |
} |
bool IsURLAllowedInIncognito(const GURL& url) { |
- return url.scheme() == chrome::kChromeUIScheme && |
+ // Most URLs are allowed in incognito; the following are exceptions. |
+ return !(url.scheme() == chrome::kChromeUIScheme && |
binji
2011/11/17 01:23:51
Reversed the logic here because the name was incon
James Hawkins
2011/11/17 02:23:53
Don't you need to reverse the call sites too?
binji
2011/11/17 21:02:09
Good catch.
|
(url.host() == chrome::kChromeUISettingsHost || |
url.host() == chrome::kChromeUIExtensionsHost || |
- url.host() == chrome::kChromeUIBookmarksHost); |
+ url.host() == chrome::kChromeUIBookmarksHost || |
+ url.host() == chrome::kChromeUISyncPromoHost)); |
} |
} // namespace browser |