Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Unified Diff: extensions/common/manifest_handlers/incognito_info.cc

Issue 1351223003: Allow extensions to specify that they are not allowed in incognito mode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Minor formatting Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/common/manifest_handlers/incognito_info.cc
diff --git a/extensions/common/manifest_handlers/incognito_info.cc b/extensions/common/manifest_handlers/incognito_info.cc
index 02c3b28a52df4bea8f57c5d025f2af0430785e45..73c7a32c542d997ce75eefe60e815dcf7ba5636b 100644
--- a/extensions/common/manifest_handlers/incognito_info.cc
+++ b/extensions/common/manifest_handlers/incognito_info.cc
@@ -14,9 +14,7 @@ namespace extensions {
namespace keys = manifest_keys;
-IncognitoInfo::IncognitoInfo(bool incognito_split_mode)
- : split_mode(incognito_split_mode) {
-}
+IncognitoInfo::IncognitoInfo(Mode mode) : mode(mode) {}
IncognitoInfo::~IncognitoInfo() {
}
@@ -25,7 +23,14 @@ IncognitoInfo::~IncognitoInfo() {
bool IncognitoInfo::IsSplitMode(const Extension* extension) {
IncognitoInfo* info = static_cast<IncognitoInfo*>(
extension->GetManifestData(keys::kIncognito));
- return info ? info->split_mode : false;
+ return info ? info->mode == Mode::SPLIT : false;
+}
+
+// static
+bool IncognitoInfo::IsIncognitoAllowed(const Extension* extension) {
+ IncognitoInfo* info =
+ static_cast<IncognitoInfo*>(extension->GetManifestData(keys::kIncognito));
+ return info ? info->mode != Mode::NOT_ALLOWED : true;
}
IncognitoHandler::IncognitoHandler() {
@@ -38,14 +43,16 @@ bool IncognitoHandler::Parse(Extension* extension, base::string16* error) {
if (!extension->manifest()->HasKey(keys::kIncognito)) {
// Extensions and Chrome apps default to spanning mode.
// Hosted and legacy packaged apps default to split mode.
- extension->SetManifestData(
- keys::kIncognito,
- new IncognitoInfo(extension->is_hosted_app() ||
- extension->is_legacy_packaged_app()));
+ IncognitoInfo::Mode default_mode =
not at google - send to devlin 2015/09/17 22:59:54 It would be slightly nicer to assign this before t
Not at Google. Contact bengr 2015/09/18 21:24:31 Done.
+ extension->is_hosted_app() || extension->is_legacy_packaged_app()
+ ? IncognitoInfo::Mode::SPLIT
+ : IncognitoInfo::Mode::SPANNING;
+ extension->SetManifestData(keys::kIncognito,
+ new IncognitoInfo(default_mode));
return true;
}
- bool split_mode = false;
+ IncognitoInfo::Mode mode = IncognitoInfo::Mode::SPANNING;
std::string incognito_string;
if (!extension->manifest()->GetString(keys::kIncognito, &incognito_string)) {
*error = base::ASCIIToUTF16(manifest_errors::kInvalidIncognitoBehavior);
@@ -53,15 +60,17 @@ bool IncognitoHandler::Parse(Extension* extension, base::string16* error) {
}
if (incognito_string == manifest_values::kIncognitoSplit)
- split_mode = true;
- else if (incognito_string != manifest_values::kIncognitoSpanning) {
- // If incognito_string == kIncognitoSpanning, it is valid and
- // split_mode remains false.
+ mode = IncognitoInfo::Mode::SPLIT;
+ else if (incognito_string == manifest_values::kIncognitoSpanning)
+ mode = IncognitoInfo::Mode::SPANNING;
+ else if (incognito_string == manifest_values::kIncognitoNotAllowed)
+ mode = IncognitoInfo::Mode::NOT_ALLOWED;
+ else {
not at google - send to devlin 2015/09/17 22:59:54 don't mix blocks with braces and blocks without th
Not at Google. Contact bengr 2015/09/18 21:24:31 Done.
*error = base::ASCIIToUTF16(manifest_errors::kInvalidIncognitoBehavior);
return false;
}
- extension->SetManifestData(keys::kIncognito, new IncognitoInfo(split_mode));
+ extension->SetManifestData(keys::kIncognito, new IncognitoInfo(mode));
return true;
}
« extensions/common/extension.cc ('K') | « extensions/common/manifest_handlers/incognito_info.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698