summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/extensions/extension_tabs_module.cc8
-rw-r--r--chrome/browser/extensions/extension_tabs_module_constants.cc2
-rw-r--r--chrome/browser/extensions/extension_tabs_module_constants.h1
3 files changed, 11 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_tabs_module.cc b/chrome/browser/extensions/extension_tabs_module.cc
index 221fbf3..bf40f57 100644
--- a/chrome/browser/extensions/extension_tabs_module.cc
+++ b/chrome/browser/extensions/extension_tabs_module.cc
@@ -398,15 +398,23 @@ bool CreateWindowFunction::RunImpl() {
}
if (incognito) {
+ std::string first_url_erased;
// 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()) {
+ if (first_url_erased.empty())
+ first_url_erased = urls[i].spec();
urls.erase(urls.begin() + i);
} else {
i++;
}
}
+ if (urls.empty() && !first_url_erased.empty()) {
+ error_ = ExtensionErrorUtils::FormatErrorMessage(
+ keys::kURLsNotAllowedInIncognitoError, first_url_erased);
+ return false;
+ }
window_profile = window_profile->GetOffTheRecordProfile();
}
}
diff --git a/chrome/browser/extensions/extension_tabs_module_constants.cc b/chrome/browser/extensions/extension_tabs_module_constants.cc
index b60e7da..8c63750 100644
--- a/chrome/browser/extensions/extension_tabs_module_constants.cc
+++ b/chrome/browser/extensions/extension_tabs_module_constants.cc
@@ -75,6 +75,8 @@ const char kTabStripNotEditableError[] =
const char kNoSelectedTabError[] = "No selected tab";
const char kNoHighlightedTabError[] = "No highlighted tab";
const char kIncognitoModeIsDisabled[] = "Incognito mode is disabled.";
+const char kURLsNotAllowedInIncognitoError[] = "Cannot open URL \"*\" "
+ "in an incognito window.";
const char kInvalidUrlError[] = "Invalid url: \"*\".";
const char kInternalVisibleTabCaptureError[] =
"Internal error while trying to capture visible region of the current tab";
diff --git a/chrome/browser/extensions/extension_tabs_module_constants.h b/chrome/browser/extensions/extension_tabs_module_constants.h
index d7f3167..a35548c 100644
--- a/chrome/browser/extensions/extension_tabs_module_constants.h
+++ b/chrome/browser/extensions/extension_tabs_module_constants.h
@@ -75,6 +75,7 @@ extern const char kTabStripNotEditableError[];
extern const char kNoHighlightedTabError[];
extern const char kNoSelectedTabError[];
extern const char kIncognitoModeIsDisabled[];
+extern const char kURLsNotAllowedInIncognitoError[];
extern const char kInvalidUrlError[];
extern const char kInternalVisibleTabCaptureError[];
extern const char kNotImplementedError[];