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; |
} |