diff options
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[]; |