Chromium Code Reviews| 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; |
| } |