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

Unified Diff: chrome/browser/extensions/api/browsing_data/browsing_data_api.cc

Issue 2654113003: Move rest of param validation in browsing_data_api.cc to ::RunAsync. (Closed)
Patch Set: sync Created 3 years, 11 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
« no previous file with comments | « chrome/browser/extensions/api/browsing_data/browsing_data_api.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/browsing_data/browsing_data_api.cc
diff --git a/chrome/browser/extensions/api/browsing_data/browsing_data_api.cc b/chrome/browser/extensions/api/browsing_data/browsing_data_api.cc
index 369beee9129a9aac883d4b0621cbb9eb5affdd91..e8474db05fcc253855bbe04c2b52b9c134769905 100644
--- a/chrome/browser/extensions/api/browsing_data/browsing_data_api.cc
+++ b/chrome/browser/extensions/api/browsing_data/browsing_data_api.cc
@@ -253,7 +253,8 @@ bool BrowsingDataRemoverFunction::RunAsync() {
EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &options));
DCHECK(options);
- origin_type_mask_ = ParseOriginTypeMask(*options);
+ EXTENSION_FUNCTION_VALIDATE(
+ ParseOriginTypeMask(*options, &origin_type_mask_));
// If |ms_since_epoch| isn't set, default it to 0.
double ms_since_epoch;
@@ -323,44 +324,55 @@ void BrowsingDataRemoverFunction::StartRemoving() {
removal_mask_, origin_type_mask_, this);
}
-int BrowsingDataRemoverFunction::ParseOriginTypeMask(
- const base::DictionaryValue& options) {
+bool BrowsingDataRemoverFunction::ParseOriginTypeMask(
+ const base::DictionaryValue& options,
+ int* origin_type_mask) {
// Parse the |options| dictionary to generate the origin set mask. Default to
// UNPROTECTED_WEB if the developer doesn't specify anything.
- int mask = BrowsingDataHelper::UNPROTECTED_WEB;
+ *origin_type_mask = BrowsingDataHelper::UNPROTECTED_WEB;
const base::DictionaryValue* d = NULL;
if (options.HasKey(extension_browsing_data_api_constants::kOriginTypesKey)) {
- EXTENSION_FUNCTION_VALIDATE(options.GetDictionary(
- extension_browsing_data_api_constants::kOriginTypesKey, &d));
+ if (!options.GetDictionary(
+ extension_browsing_data_api_constants::kOriginTypesKey, &d)) {
+ return false;
+ }
bool value;
// The developer specified something! Reset to 0 and parse the dictionary.
- mask = 0;
+ *origin_type_mask = 0;
// Unprotected web.
if (d->HasKey(extension_browsing_data_api_constants::kUnprotectedWebKey)) {
- EXTENSION_FUNCTION_VALIDATE(d->GetBoolean(
- extension_browsing_data_api_constants::kUnprotectedWebKey, &value));
- mask |= value ? BrowsingDataHelper::UNPROTECTED_WEB : 0;
+ if (!d->GetBoolean(
+ extension_browsing_data_api_constants::kUnprotectedWebKey,
+ &value)) {
+ return false;
+ }
+ *origin_type_mask |= value ? BrowsingDataHelper::UNPROTECTED_WEB : 0;
}
// Protected web.
if (d->HasKey(extension_browsing_data_api_constants::kProtectedWebKey)) {
- EXTENSION_FUNCTION_VALIDATE(d->GetBoolean(
- extension_browsing_data_api_constants::kProtectedWebKey, &value));
- mask |= value ? BrowsingDataHelper::PROTECTED_WEB : 0;
+ if (!d->GetBoolean(
+ extension_browsing_data_api_constants::kProtectedWebKey,
+ &value)) {
+ return false;
+ }
+ *origin_type_mask |= value ? BrowsingDataHelper::PROTECTED_WEB : 0;
}
// Extensions.
if (d->HasKey(extension_browsing_data_api_constants::kExtensionsKey)) {
- EXTENSION_FUNCTION_VALIDATE(d->GetBoolean(
- extension_browsing_data_api_constants::kExtensionsKey, &value));
- mask |= value ? BrowsingDataHelper::EXTENSION : 0;
+ if (!d->GetBoolean(extension_browsing_data_api_constants::kExtensionsKey,
+ &value)) {
+ return false;
+ }
+ *origin_type_mask |= value ? BrowsingDataHelper::EXTENSION : 0;
}
}
- return mask;
+ return true;
}
// Parses the |dataToRemove| argument to generate the removal mask.
« no previous file with comments | « chrome/browser/extensions/api/browsing_data/browsing_data_api.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698