summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorncj674@motorola.com <ncj674@motorola.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-14 15:48:19 +0000
committerncj674@motorola.com <ncj674@motorola.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-14 15:48:19 +0000
commit130b48e0cbad58bbe59b87c79fbdfe9ca6b57a31 (patch)
tree2794f6b5bd46c4cff980ecae501c33f9f2b7655b
parent94ae845f3e78716a8d90c652f1139ad677718d7a (diff)
downloadchromium_src-130b48e0cbad58bbe59b87c79fbdfe9ca6b57a31.zip
chromium_src-130b48e0cbad58bbe59b87c79fbdfe9ca6b57a31.tar.gz
chromium_src-130b48e0cbad58bbe59b87c79fbdfe9ca6b57a31.tar.bz2
Do not create incognito window based on the particular URL.
BUG=98534 TEST=1.Open bookmark manager and bookmark it. 2.Bookmark manager is shown in the bookmarks list. 3.Right click on the bookmark manager entry and try to open it in incognito window. It should not open bookmark manager in incognito window. Review URL: http://codereview.chromium.org/8077006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105500 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/extensions/extension_tabs_module.cc12
-rw-r--r--chrome/browser/ui/browser_navigator.cc12
-rw-r--r--chrome/browser/ui/browser_navigator.h5
3 files changed, 24 insertions, 5 deletions
diff --git a/chrome/browser/extensions/extension_tabs_module.cc b/chrome/browser/extensions/extension_tabs_module.cc
index f51f064..c460cc9 100644
--- a/chrome/browser/extensions/extension_tabs_module.cc
+++ b/chrome/browser/extensions/extension_tabs_module.cc
@@ -395,8 +395,18 @@ bool CreateWindowFunction::RunImpl() {
return false;
}
- if (incognito)
+ if (incognito) {
+ // Guest session is an exception as it always opens in incognito mode.
+ for (size_t i = 0; i < urls.size();) {
+ if (browser::IsURLAllowedInIncognito(urls[i]) &&
+ !Profile::IsGuestSession()) {
+ urls.erase(urls.begin() + i);
+ } else {
+ i++;
+ }
+ }
window_profile = window_profile->GetOffTheRecordProfile();
+ }
}
if (args->HasKey(keys::kFocusedKey)) {
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc
index c8503b2..f6bb093 100644
--- a/chrome/browser/ui/browser_navigator.cc
+++ b/chrome/browser/ui/browser_navigator.cc
@@ -76,10 +76,7 @@ bool CompareURLsWithReplacements(
// chrome://settings.
void AdjustNavigateParamsForURL(browser::NavigateParams* params) {
if (!params->target_contents &&
- params->url.scheme() == chrome::kChromeUIScheme &&
- (params->url.host() == chrome::kChromeUISettingsHost ||
- params->url.host() == chrome::kChromeUIExtensionsHost ||
- params->url.host() == chrome::kChromeUIBookmarksHost)) {
+ browser::IsURLAllowedInIncognito(params->url)) {
Profile* profile =
params->browser ? params->browser->profile() : params->profile;
@@ -618,4 +615,11 @@ int GetIndexOfSingletonTab(browser::NavigateParams* params) {
return -1;
}
+bool IsURLAllowedInIncognito(const GURL& url) {
+ return url.scheme() == chrome::kChromeUIScheme &&
+ (url.host() == chrome::kChromeUISettingsHost ||
+ url.host() == chrome::kChromeUIExtensionsHost ||
+ url.host() == chrome::kChromeUIBookmarksHost);
+}
+
} // namespace browser
diff --git a/chrome/browser/ui/browser_navigator.h b/chrome/browser/ui/browser_navigator.h
index 02ee48a..5124c97 100644
--- a/chrome/browser/ui/browser_navigator.h
+++ b/chrome/browser/ui/browser_navigator.h
@@ -191,6 +191,11 @@ void Navigate(NavigateParams* params);
// Otherwise, returns -1.
int GetIndexOfSingletonTab(NavigateParams* params);
+// Returns true if the url is not allowed to open in incognito window.
+// Currently, chrome://settings, the bookmark manager, and chrome://extensions
+// are part this list.
+bool IsURLAllowedInIncognito(const GURL& url);
+
} // namespace browser
#endif // CHROME_BROWSER_UI_BROWSER_NAVIGATOR_H_