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

Side by Side Diff: chrome/browser/extensions/api/browsing_data/browsing_data_api.cc

Issue 2697123004: Convert RemoveDataMask from enum to pointers and split it between content and embedder (Closed)
Patch Set: Android compilation Created 3 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Defines the Chrome Extensions BrowsingData API functions, which entail 5 // Defines the Chrome Extensions BrowsingData API functions, which entail
6 // clearing browsing data, and clearing the browser's cache (which, let's be 6 // clearing browsing data, and clearing the browser's cache (which, let's be
7 // honest, are the same thing), as specified in the extension API JSON. 7 // honest, are the same thing), as specified in the extension API JSON.
8 8
9 #include "chrome/browser/extensions/api/browsing_data/browsing_data_api.h" 9 #include "chrome/browser/extensions/api/browsing_data/browsing_data_api.h"
10 10
11 #include <set>
11 #include <string> 12 #include <string>
12 #include <utility> 13 #include <utility>
13 14
15 #include "base/stl_util.h"
14 #include "base/values.h" 16 #include "base/values.h"
15 #include "chrome/browser/browsing_data/browsing_data_helper.h" 17 #include "chrome/browser/browsing_data/browsing_data_helper.h"
16 #include "chrome/browser/browsing_data/browsing_data_remover.h" 18 #include "chrome/browser/browsing_data/browsing_data_remover.h"
17 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" 19 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
20 #include "chrome/browser/browsing_data/chrome_browsing_data_types.h"
18 #include "chrome/browser/plugins/plugin_data_remover_helper.h" 21 #include "chrome/browser/plugins/plugin_data_remover_helper.h"
19 #include "chrome/browser/plugins/plugin_prefs.h" 22 #include "chrome/browser/plugins/plugin_prefs.h"
20 #include "chrome/browser/profiles/profile.h" 23 #include "chrome/browser/profiles/profile.h"
21 #include "chrome/browser/ui/browser.h" 24 #include "chrome/browser/ui/browser.h"
22 #include "chrome/common/pref_names.h" 25 #include "chrome/common/pref_names.h"
23 #include "components/browsing_data/core/browsing_data_utils.h" 26 #include "components/browsing_data/core/browsing_data_utils.h"
24 #include "components/browsing_data/core/pref_names.h" 27 #include "components/browsing_data/core/pref_names.h"
25 #include "content/public/browser/browser_thread.h" 28 #include "content/public/browser/browser_thread.h"
26 #include "extensions/common/error_utils.h" 29 #include "extensions/common/error_utils.h"
27 #include "extensions/common/extension.h" 30 #include "extensions/common/extension.h"
28 31
29 using content::BrowserThread; 32 using content::BrowserThread;
33 using content::BrowsingDataType;
30 34
31 namespace extension_browsing_data_api_constants { 35 namespace extension_browsing_data_api_constants {
32 36
33 // Parameter name keys. 37 // Parameter name keys.
34 const char kDataRemovalPermittedKey[] = "dataRemovalPermitted"; 38 const char kDataRemovalPermittedKey[] = "dataRemovalPermitted";
35 const char kDataToRemoveKey[] = "dataToRemove"; 39 const char kDataToRemoveKey[] = "dataToRemove";
36 const char kOptionsKey[] = "options"; 40 const char kOptionsKey[] = "options";
37 41
38 // Type keys. 42 // Type keys.
39 const char kAppCacheKey[] = "appcache"; 43 const char kAppCacheKey[] = "appcache";
(...skipping 22 matching lines...) Expand all
62 // Errors! 66 // Errors!
63 // The placeholder will be filled by the name of the affected data type (e.g., 67 // The placeholder will be filled by the name of the affected data type (e.g.,
64 // "history"). 68 // "history").
65 const char kBadDataTypeDetails[] = "Invalid value for data type '%s'."; 69 const char kBadDataTypeDetails[] = "Invalid value for data type '%s'.";
66 const char kDeleteProhibitedError[] = "Browsing history and downloads are not " 70 const char kDeleteProhibitedError[] = "Browsing history and downloads are not "
67 "permitted to be removed."; 71 "permitted to be removed.";
68 72
69 } // namespace extension_browsing_data_api_constants 73 } // namespace extension_browsing_data_api_constants
70 74
71 namespace { 75 namespace {
72 int MaskForKey(const char* key) { 76
77 // TODO(msramek): This function could be simplified to three lines if we ensured
78 // that extension API keys are the same as names specified in BrowsingDataType.
79 const BrowsingDataType* TypeForKey(const char* key) {
73 if (strcmp(key, extension_browsing_data_api_constants::kAppCacheKey) == 0) 80 if (strcmp(key, extension_browsing_data_api_constants::kAppCacheKey) == 0)
74 return BrowsingDataRemover::REMOVE_APPCACHE; 81 return &kBrowsingDataTypeAppCache;
75 if (strcmp(key, extension_browsing_data_api_constants::kCacheKey) == 0) 82 if (strcmp(key, extension_browsing_data_api_constants::kCacheKey) == 0)
76 return BrowsingDataRemover::REMOVE_CACHE; 83 return &kBrowsingDataTypeCache;
77 if (strcmp(key, extension_browsing_data_api_constants::kCookiesKey) == 0) { 84 if (strcmp(key, extension_browsing_data_api_constants::kCookiesKey) == 0) {
78 return BrowsingDataRemover::REMOVE_COOKIES; 85 return &kBrowsingDataTypeCookies;
79 } 86 }
80 if (strcmp(key, extension_browsing_data_api_constants::kDownloadsKey) == 0) 87 if (strcmp(key, extension_browsing_data_api_constants::kDownloadsKey) == 0)
81 return BrowsingDataRemover::REMOVE_DOWNLOADS; 88 return &kBrowsingDataTypeDownloads;
82 if (strcmp(key, extension_browsing_data_api_constants::kFileSystemsKey) == 0) 89 if (strcmp(key, extension_browsing_data_api_constants::kFileSystemsKey) == 0)
83 return BrowsingDataRemover::REMOVE_FILE_SYSTEMS; 90 return &kBrowsingDataTypeFileSystems;
84 if (strcmp(key, extension_browsing_data_api_constants::kFormDataKey) == 0) 91 if (strcmp(key, extension_browsing_data_api_constants::kFormDataKey) == 0)
85 return BrowsingDataRemover::REMOVE_FORM_DATA; 92 return &kBrowsingDataTypeFormData;
86 if (strcmp(key, extension_browsing_data_api_constants::kHistoryKey) == 0) 93 if (strcmp(key, extension_browsing_data_api_constants::kHistoryKey) == 0)
87 return BrowsingDataRemover::REMOVE_HISTORY; 94 return &kBrowsingDataTypeHistory;
88 if (strcmp(key, extension_browsing_data_api_constants::kIndexedDBKey) == 0) 95 if (strcmp(key, extension_browsing_data_api_constants::kIndexedDBKey) == 0)
89 return BrowsingDataRemover::REMOVE_INDEXEDDB; 96 return &kBrowsingDataTypeIndexedDB;
90 if (strcmp(key, extension_browsing_data_api_constants::kLocalStorageKey) == 0) 97 if (strcmp(key, extension_browsing_data_api_constants::kLocalStorageKey) == 0)
91 return BrowsingDataRemover::REMOVE_LOCAL_STORAGE; 98 return &kBrowsingDataTypeLocalStorage;
92 if (strcmp(key, 99 if (strcmp(key,
93 extension_browsing_data_api_constants::kChannelIDsKey) == 0) 100 extension_browsing_data_api_constants::kChannelIDsKey) == 0)
94 return BrowsingDataRemover::REMOVE_CHANNEL_IDS; 101 return &kBrowsingDataTypeChannelIDs;
95 if (strcmp(key, extension_browsing_data_api_constants::kPasswordsKey) == 0) 102 if (strcmp(key, extension_browsing_data_api_constants::kPasswordsKey) == 0)
96 return BrowsingDataRemover::REMOVE_PASSWORDS; 103 return &kBrowsingDataTypePasswords;
97 if (strcmp(key, extension_browsing_data_api_constants::kPluginDataKey) == 0) 104 if (strcmp(key, extension_browsing_data_api_constants::kPluginDataKey) == 0)
98 return BrowsingDataRemover::REMOVE_PLUGIN_DATA; 105 return &kBrowsingDataTypePluginData;
99 if (strcmp(key, extension_browsing_data_api_constants::kServiceWorkersKey) == 106 if (strcmp(key, extension_browsing_data_api_constants::kServiceWorkersKey) ==
100 0) 107 0)
101 return BrowsingDataRemover::REMOVE_SERVICE_WORKERS; 108 return &kBrowsingDataTypeServiceWorkers;
102 if (strcmp(key, extension_browsing_data_api_constants::kCacheStorageKey) == 0) 109 if (strcmp(key, extension_browsing_data_api_constants::kCacheStorageKey) == 0)
103 return BrowsingDataRemover::REMOVE_CACHE_STORAGE; 110 return &kBrowsingDataTypeCacheStorage;
104 if (strcmp(key, extension_browsing_data_api_constants::kWebSQLKey) == 0) 111 if (strcmp(key, extension_browsing_data_api_constants::kWebSQLKey) == 0)
105 return BrowsingDataRemover::REMOVE_WEBSQL; 112 return &kBrowsingDataTypeWebSQL;
106 113
107 return 0; 114 return nullptr;
108 } 115 }
109 116
110 // Returns false if any of the selected data types are not allowed to be 117 // Returns false if any of the selected data types are not allowed to be
111 // deleted. 118 // deleted.
112 bool IsRemovalPermitted(int removal_mask, PrefService* prefs) { 119 bool IsRemovalPermitted(const std::set<const BrowsingDataType*>& removal_mask,
120 PrefService* prefs) {
113 // Enterprise policy or user preference might prohibit deleting browser or 121 // Enterprise policy or user preference might prohibit deleting browser or
114 // download history. 122 // download history.
115 if ((removal_mask & BrowsingDataRemover::REMOVE_HISTORY) || 123 if (base::ContainsValue(removal_mask, &kBrowsingDataTypeHistory) ||
116 (removal_mask & BrowsingDataRemover::REMOVE_DOWNLOADS)) { 124 base::ContainsValue(removal_mask, &kBrowsingDataTypeDownloads)) {
117 return prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory); 125 return prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory);
118 } 126 }
119 return true; 127 return true;
120 } 128 }
121 129
122 } // namespace 130 } // namespace
123 131
124 ExtensionFunction::ResponseAction BrowsingDataSettingsFunction::Run() { 132 ExtensionFunction::ResponseAction BrowsingDataSettingsFunction::Run() {
125 prefs_ = Profile::FromBrowserContext(browser_context())->GetPrefs(); 133 prefs_ = Profile::FromBrowserContext(browser_context())->GetPrefs();
126 134
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 result->Set(extension_browsing_data_api_constants::kDataRemovalPermittedKey, 228 result->Set(extension_browsing_data_api_constants::kDataRemovalPermittedKey,
221 permitted.release()); 229 permitted.release());
222 return RespondNow(OneArgument(std::move(result))); 230 return RespondNow(OneArgument(std::move(result)));
223 } 231 }
224 232
225 void BrowsingDataSettingsFunction::SetDetails( 233 void BrowsingDataSettingsFunction::SetDetails(
226 base::DictionaryValue* selected_dict, 234 base::DictionaryValue* selected_dict,
227 base::DictionaryValue* permitted_dict, 235 base::DictionaryValue* permitted_dict,
228 const char* data_type, 236 const char* data_type,
229 bool is_selected) { 237 bool is_selected) {
230 bool is_permitted = IsRemovalPermitted(MaskForKey(data_type), prefs_); 238 const std::set<const BrowsingDataType*> removal_mask = {
239 TypeForKey(data_type)};
240 bool is_permitted = IsRemovalPermitted(removal_mask, prefs_);
231 selected_dict->SetBoolean(data_type, is_selected && is_permitted); 241 selected_dict->SetBoolean(data_type, is_selected && is_permitted);
232 permitted_dict->SetBoolean(data_type, is_permitted); 242 permitted_dict->SetBoolean(data_type, is_permitted);
233 } 243 }
234 244
235 BrowsingDataRemoverFunction::BrowsingDataRemoverFunction() : observer_(this) {} 245 BrowsingDataRemoverFunction::BrowsingDataRemoverFunction() : observer_(this) {}
236 246
237 void BrowsingDataRemoverFunction::OnBrowsingDataRemoverDone() { 247 void BrowsingDataRemoverFunction::OnBrowsingDataRemoverDone() {
238 DCHECK_CURRENTLY_ON(BrowserThread::UI); 248 DCHECK_CURRENTLY_ON(BrowserThread::UI);
239 249
240 observer_.RemoveAll(); 250 observer_.RemoveAll();
(...skipping 22 matching lines...) Expand all
263 ms_since_epoch = 0; 273 ms_since_epoch = 0;
264 274
265 // base::Time takes a double that represents seconds since epoch. JavaScript 275 // base::Time takes a double that represents seconds since epoch. JavaScript
266 // gives developers milliseconds, so do a quick conversion before populating 276 // gives developers milliseconds, so do a quick conversion before populating
267 // the object. Also, Time::FromDoubleT converts double time 0 to empty Time 277 // the object. Also, Time::FromDoubleT converts double time 0 to empty Time
268 // object. So we need to do special handling here. 278 // object. So we need to do special handling here.
269 remove_since_ = (ms_since_epoch == 0) ? 279 remove_since_ = (ms_since_epoch == 0) ?
270 base::Time::UnixEpoch() : 280 base::Time::UnixEpoch() :
271 base::Time::FromDoubleT(ms_since_epoch / 1000.0); 281 base::Time::FromDoubleT(ms_since_epoch / 1000.0);
272 282
283 removal_mask_.clear();
273 EXTENSION_FUNCTION_VALIDATE(GetRemovalMask(&removal_mask_)); 284 EXTENSION_FUNCTION_VALIDATE(GetRemovalMask(&removal_mask_));
274 285
275 // Check for prohibited data types. 286 // Check for prohibited data types.
276 if (!IsRemovalPermitted(removal_mask_, GetProfile()->GetPrefs())) { 287 if (!IsRemovalPermitted(removal_mask_, GetProfile()->GetPrefs())) {
277 error_ = extension_browsing_data_api_constants::kDeleteProhibitedError; 288 error_ = extension_browsing_data_api_constants::kDeleteProhibitedError;
278 return false; 289 return false;
279 } 290 }
280 291
281 if (removal_mask_ & BrowsingDataRemover::REMOVE_PLUGIN_DATA) { 292 if (base::ContainsValue(removal_mask_, &kBrowsingDataTypePluginData)) {
282 // If we're being asked to remove plugin data, check whether it's actually 293 // If we're being asked to remove plugin data, check whether it's actually
283 // supported. 294 // supported.
284 BrowserThread::PostTask( 295 BrowserThread::PostTask(
285 BrowserThread::FILE, 296 BrowserThread::FILE,
286 FROM_HERE, 297 FROM_HERE,
287 base::Bind( 298 base::Bind(
288 &BrowsingDataRemoverFunction::CheckRemovingPluginDataSupported, 299 &BrowsingDataRemoverFunction::CheckRemovingPluginDataSupported,
289 this, 300 this,
290 PluginPrefs::GetForProfile(GetProfile()))); 301 PluginPrefs::GetForProfile(GetProfile())));
291 } else { 302 } else {
292 StartRemoving(); 303 StartRemoving();
293 } 304 }
294 305
295 // Will finish asynchronously. 306 // Will finish asynchronously.
296 return true; 307 return true;
297 } 308 }
298 309
299 BrowsingDataRemoverFunction::~BrowsingDataRemoverFunction() {} 310 BrowsingDataRemoverFunction::~BrowsingDataRemoverFunction() {}
300 311
301 void BrowsingDataRemoverFunction::CheckRemovingPluginDataSupported( 312 void BrowsingDataRemoverFunction::CheckRemovingPluginDataSupported(
302 scoped_refptr<PluginPrefs> plugin_prefs) { 313 scoped_refptr<PluginPrefs> plugin_prefs) {
303 if (!PluginDataRemoverHelper::IsSupported(plugin_prefs.get())) 314 if (!PluginDataRemoverHelper::IsSupported(plugin_prefs.get()))
304 removal_mask_ &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA; 315 removal_mask_.erase(&kBrowsingDataTypePluginData);
305 316
306 BrowserThread::PostTask( 317 BrowserThread::PostTask(
307 BrowserThread::UI, FROM_HERE, 318 BrowserThread::UI, FROM_HERE,
308 base::Bind(&BrowsingDataRemoverFunction::StartRemoving, this)); 319 base::Bind(&BrowsingDataRemoverFunction::StartRemoving, this));
309 } 320 }
310 321
311 void BrowsingDataRemoverFunction::StartRemoving() { 322 void BrowsingDataRemoverFunction::StartRemoving() {
312 BrowsingDataRemover* remover = 323 BrowsingDataRemover* remover =
313 BrowsingDataRemoverFactory::GetForBrowserContext(GetProfile()); 324 BrowsingDataRemoverFactory::GetForBrowserContext(GetProfile());
314 // Add a ref (Balanced in OnBrowsingDataRemoverDone) 325 // Add a ref (Balanced in OnBrowsingDataRemoverDone)
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 *origin_type_mask |= value ? BrowsingDataHelper::EXTENSION : 0; 382 *origin_type_mask |= value ? BrowsingDataHelper::EXTENSION : 0;
372 } 383 }
373 } 384 }
374 385
375 return true; 386 return true;
376 } 387 }
377 388
378 // Parses the |dataToRemove| argument to generate the removal mask. 389 // Parses the |dataToRemove| argument to generate the removal mask.
379 // Returns false if parse was not successful, i.e. if 'dataToRemove' is not 390 // Returns false if parse was not successful, i.e. if 'dataToRemove' is not
380 // present or any data-type keys don't have supported (boolean) values. 391 // present or any data-type keys don't have supported (boolean) values.
381 bool BrowsingDataRemoveFunction::GetRemovalMask(int* removal_mask) { 392 bool BrowsingDataRemoveFunction::GetRemovalMask(
393 std::set<const BrowsingDataType*>* removal_mask) {
382 base::DictionaryValue* data_to_remove; 394 base::DictionaryValue* data_to_remove;
383 if (!args_->GetDictionary(1, &data_to_remove)) 395 if (!args_->GetDictionary(1, &data_to_remove))
384 return false; 396 return false;
385 397
386 *removal_mask = 0; 398 removal_mask->clear();
387 for (base::DictionaryValue::Iterator i(*data_to_remove); 399 for (base::DictionaryValue::Iterator i(*data_to_remove);
388 !i.IsAtEnd(); 400 !i.IsAtEnd();
389 i.Advance()) { 401 i.Advance()) {
390 bool selected = false; 402 bool selected = false;
391 if (!i.value().GetAsBoolean(&selected)) 403 if (!i.value().GetAsBoolean(&selected))
392 return false; 404 return false;
393 if (selected) 405 const BrowsingDataType* data_type = TypeForKey(i.key().c_str());
394 *removal_mask |= MaskForKey(i.key().c_str()); 406 if (data_type && selected)
407 removal_mask->insert(data_type);
395 } 408 }
396 409
397 return true; 410 return true;
398 } 411 }
399 412
400 bool BrowsingDataRemoveAppcacheFunction::GetRemovalMask(int* removal_mask) { 413 bool BrowsingDataRemoveAppcacheFunction::GetRemovalMask(
401 *removal_mask = BrowsingDataRemover::REMOVE_APPCACHE; 414 std::set<const BrowsingDataType*>* removal_mask) {
415 removal_mask->insert(&kBrowsingDataTypeAppCache);
402 return true; 416 return true;
403 } 417 }
404 418
405 bool BrowsingDataRemoveCacheFunction::GetRemovalMask(int* removal_mask) { 419 bool BrowsingDataRemoveCacheFunction::GetRemovalMask(
406 *removal_mask = BrowsingDataRemover::REMOVE_CACHE; 420 std::set<const BrowsingDataType*>* removal_mask) {
421 removal_mask->insert(&kBrowsingDataTypeCache);
407 return true; 422 return true;
408 } 423 }
409 424
410 bool BrowsingDataRemoveCookiesFunction::GetRemovalMask(int* removal_mask) { 425 bool BrowsingDataRemoveCookiesFunction::GetRemovalMask(
411 *removal_mask = BrowsingDataRemover::REMOVE_COOKIES | 426 std::set<const BrowsingDataType*>* removal_mask) {
412 BrowsingDataRemover::REMOVE_CHANNEL_IDS; 427 removal_mask->insert(&kBrowsingDataTypeCookies);
428 removal_mask->insert(&kBrowsingDataTypeChannelIDs);
413 return true; 429 return true;
414 } 430 }
415 431
416 bool BrowsingDataRemoveDownloadsFunction::GetRemovalMask(int* removal_mask) { 432 bool BrowsingDataRemoveDownloadsFunction::GetRemovalMask(
417 *removal_mask = BrowsingDataRemover::REMOVE_DOWNLOADS; 433 std::set<const BrowsingDataType*>* removal_mask) {
434 removal_mask->insert(&kBrowsingDataTypeDownloads);
418 return true; 435 return true;
419 } 436 }
420 437
421 bool BrowsingDataRemoveFileSystemsFunction::GetRemovalMask(int* removal_mask) { 438 bool BrowsingDataRemoveFileSystemsFunction::GetRemovalMask(
422 *removal_mask = BrowsingDataRemover::REMOVE_FILE_SYSTEMS; 439 std::set<const BrowsingDataType*>* removal_mask) {
440 removal_mask->insert(&kBrowsingDataTypeFileSystems);
423 return true; 441 return true;
424 } 442 }
425 443
426 bool BrowsingDataRemoveFormDataFunction::GetRemovalMask(int* removal_mask) { 444 bool BrowsingDataRemoveFormDataFunction::GetRemovalMask(
427 *removal_mask = BrowsingDataRemover::REMOVE_FORM_DATA; 445 std::set<const BrowsingDataType*>* removal_mask) {
446 removal_mask->insert(&kBrowsingDataTypeFormData);
428 return true; 447 return true;
429 } 448 }
430 449
431 bool BrowsingDataRemoveHistoryFunction::GetRemovalMask(int* removal_mask) { 450 bool BrowsingDataRemoveHistoryFunction::GetRemovalMask(
432 *removal_mask = BrowsingDataRemover::REMOVE_HISTORY; 451 std::set<const BrowsingDataType*>* removal_mask) {
452 removal_mask->insert(&kBrowsingDataTypeHistory);
433 return true; 453 return true;
434 } 454 }
435 455
436 bool BrowsingDataRemoveIndexedDBFunction::GetRemovalMask(int* removal_mask) { 456 bool BrowsingDataRemoveIndexedDBFunction::GetRemovalMask(
437 *removal_mask = BrowsingDataRemover::REMOVE_INDEXEDDB; 457 std::set<const BrowsingDataType*>* removal_mask) {
458 removal_mask->insert(&kBrowsingDataTypeIndexedDB);
438 return true; 459 return true;
439 } 460 }
440 461
441 bool BrowsingDataRemoveLocalStorageFunction::GetRemovalMask(int* removal_mask) { 462 bool BrowsingDataRemoveLocalStorageFunction::GetRemovalMask(
442 *removal_mask = BrowsingDataRemover::REMOVE_LOCAL_STORAGE; 463 std::set<const BrowsingDataType*>* removal_mask) {
464 removal_mask->insert(&kBrowsingDataTypeLocalStorage);
443 return true; 465 return true;
444 } 466 }
445 467
446 bool BrowsingDataRemovePluginDataFunction::GetRemovalMask(int* removal_mask) { 468 bool BrowsingDataRemovePluginDataFunction::GetRemovalMask(
447 *removal_mask = BrowsingDataRemover::REMOVE_PLUGIN_DATA; 469 std::set<const BrowsingDataType*>* removal_mask) {
470 removal_mask->insert(&kBrowsingDataTypePluginData);
448 return true; 471 return true;
449 } 472 }
450 473
451 bool BrowsingDataRemovePasswordsFunction::GetRemovalMask(int* removal_mask) { 474 bool BrowsingDataRemovePasswordsFunction::GetRemovalMask(
452 *removal_mask = BrowsingDataRemover::REMOVE_PASSWORDS; 475 std::set<const BrowsingDataType*>* removal_mask) {
476 removal_mask->insert(&kBrowsingDataTypePasswords);
453 return true; 477 return true;
454 } 478 }
455 479
456 bool BrowsingDataRemoveServiceWorkersFunction::GetRemovalMask( 480 bool BrowsingDataRemoveServiceWorkersFunction::GetRemovalMask(
457 int* removal_mask) { 481 std::set<const BrowsingDataType*>* removal_mask) {
458 *removal_mask = BrowsingDataRemover::REMOVE_SERVICE_WORKERS; 482 removal_mask->insert(&kBrowsingDataTypeServiceWorkers);
459 return true; 483 return true;
460 } 484 }
461 485
462 bool BrowsingDataRemoveCacheStorageFunction::GetRemovalMask(int* removal_mask) { 486 bool BrowsingDataRemoveCacheStorageFunction::GetRemovalMask(
463 *removal_mask = BrowsingDataRemover::REMOVE_CACHE_STORAGE; 487 std::set<const BrowsingDataType*>* removal_mask) {
488 removal_mask->insert(&kBrowsingDataTypeCacheStorage);
464 return true; 489 return true;
465 } 490 }
466 491
467 bool BrowsingDataRemoveWebSQLFunction::GetRemovalMask(int* removal_mask) { 492 bool BrowsingDataRemoveWebSQLFunction::GetRemovalMask(
468 *removal_mask = BrowsingDataRemover::REMOVE_WEBSQL; 493 std::set<const BrowsingDataType*>* removal_mask) {
494 removal_mask->insert(&kBrowsingDataTypeWebSQL);
469 return true; 495 return true;
470 } 496 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698