OLD | NEW |
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 <string> | 11 #include <string> |
12 #include <utility> | 12 #include <utility> |
13 | 13 |
14 #include "base/values.h" | 14 #include "base/values.h" |
15 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 15 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
16 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 16 |
17 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" | |
18 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" | 17 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" |
19 #include "chrome/browser/plugins/plugin_data_remover_helper.h" | 18 #include "chrome/browser/plugins/plugin_data_remover_helper.h" |
20 #include "chrome/browser/plugins/plugin_prefs.h" | 19 #include "chrome/browser/plugins/plugin_prefs.h" |
21 #include "chrome/browser/profiles/profile.h" | 20 #include "chrome/browser/profiles/profile.h" |
22 #include "chrome/browser/ui/browser.h" | 21 #include "chrome/browser/ui/browser.h" |
23 #include "chrome/common/pref_names.h" | 22 #include "chrome/common/pref_names.h" |
24 #include "components/browsing_data/core/browsing_data_utils.h" | 23 #include "components/browsing_data/core/browsing_data_utils.h" |
25 #include "components/browsing_data/core/pref_names.h" | 24 #include "components/browsing_data/core/pref_names.h" |
26 #include "content/public/browser/browser_thread.h" | 25 #include "content/public/browser/browser_thread.h" |
| 26 #include "content/public/browser/browsing_data_remover.h" |
27 #include "extensions/common/error_utils.h" | 27 #include "extensions/common/error_utils.h" |
28 #include "extensions/common/extension.h" | 28 #include "extensions/common/extension.h" |
29 | 29 |
30 using content::BrowserThread; | 30 using content::BrowserThread; |
31 | 31 |
32 namespace extension_browsing_data_api_constants { | 32 namespace extension_browsing_data_api_constants { |
33 | 33 |
34 // Parameter name keys. | 34 // Parameter name keys. |
35 const char kDataRemovalPermittedKey[] = "dataRemovalPermitted"; | 35 const char kDataRemovalPermittedKey[] = "dataRemovalPermitted"; |
36 const char kDataToRemoveKey[] = "dataToRemove"; | 36 const char kDataToRemoveKey[] = "dataToRemove"; |
(...skipping 28 matching lines...) Expand all Loading... |
65 // "history"). | 65 // "history"). |
66 const char kBadDataTypeDetails[] = "Invalid value for data type '%s'."; | 66 const char kBadDataTypeDetails[] = "Invalid value for data type '%s'."; |
67 const char kDeleteProhibitedError[] = "Browsing history and downloads are not " | 67 const char kDeleteProhibitedError[] = "Browsing history and downloads are not " |
68 "permitted to be removed."; | 68 "permitted to be removed."; |
69 | 69 |
70 } // namespace extension_browsing_data_api_constants | 70 } // namespace extension_browsing_data_api_constants |
71 | 71 |
72 namespace { | 72 namespace { |
73 int MaskForKey(const char* key) { | 73 int MaskForKey(const char* key) { |
74 if (strcmp(key, extension_browsing_data_api_constants::kAppCacheKey) == 0) | 74 if (strcmp(key, extension_browsing_data_api_constants::kAppCacheKey) == 0) |
75 return BrowsingDataRemover::DATA_TYPE_APP_CACHE; | 75 return content::BrowsingDataRemover::DATA_TYPE_APP_CACHE; |
76 if (strcmp(key, extension_browsing_data_api_constants::kCacheKey) == 0) | 76 if (strcmp(key, extension_browsing_data_api_constants::kCacheKey) == 0) |
77 return BrowsingDataRemover::DATA_TYPE_CACHE; | 77 return content::BrowsingDataRemover::DATA_TYPE_CACHE; |
78 if (strcmp(key, extension_browsing_data_api_constants::kCookiesKey) == 0) { | 78 if (strcmp(key, extension_browsing_data_api_constants::kCookiesKey) == 0) { |
79 return BrowsingDataRemover::DATA_TYPE_COOKIES; | 79 return content::BrowsingDataRemover::DATA_TYPE_COOKIES; |
80 } | 80 } |
81 if (strcmp(key, extension_browsing_data_api_constants::kDownloadsKey) == 0) | 81 if (strcmp(key, extension_browsing_data_api_constants::kDownloadsKey) == 0) |
82 return BrowsingDataRemover::DATA_TYPE_DOWNLOADS; | 82 return content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS; |
83 if (strcmp(key, extension_browsing_data_api_constants::kFileSystemsKey) == 0) | 83 if (strcmp(key, extension_browsing_data_api_constants::kFileSystemsKey) == 0) |
84 return BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS; | 84 return content::BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS; |
85 if (strcmp(key, extension_browsing_data_api_constants::kFormDataKey) == 0) | 85 if (strcmp(key, extension_browsing_data_api_constants::kFormDataKey) == 0) |
86 return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA; | 86 return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA; |
87 if (strcmp(key, extension_browsing_data_api_constants::kHistoryKey) == 0) | 87 if (strcmp(key, extension_browsing_data_api_constants::kHistoryKey) == 0) |
88 return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY; | 88 return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY; |
89 if (strcmp(key, extension_browsing_data_api_constants::kIndexedDBKey) == 0) | 89 if (strcmp(key, extension_browsing_data_api_constants::kIndexedDBKey) == 0) |
90 return BrowsingDataRemover::DATA_TYPE_INDEXED_DB; | 90 return content::BrowsingDataRemover::DATA_TYPE_INDEXED_DB; |
91 if (strcmp(key, extension_browsing_data_api_constants::kLocalStorageKey) == 0) | 91 if (strcmp(key, extension_browsing_data_api_constants::kLocalStorageKey) == 0) |
92 return BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE; | 92 return content::BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE; |
93 if (strcmp(key, | 93 if (strcmp(key, |
94 extension_browsing_data_api_constants::kChannelIDsKey) == 0) | 94 extension_browsing_data_api_constants::kChannelIDsKey) == 0) |
95 return BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS; | 95 return content::BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS; |
96 if (strcmp(key, extension_browsing_data_api_constants::kPasswordsKey) == 0) | 96 if (strcmp(key, extension_browsing_data_api_constants::kPasswordsKey) == 0) |
97 return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS; | 97 return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS; |
98 if (strcmp(key, extension_browsing_data_api_constants::kPluginDataKey) == 0) | 98 if (strcmp(key, extension_browsing_data_api_constants::kPluginDataKey) == 0) |
99 return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; | 99 return ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; |
100 if (strcmp(key, extension_browsing_data_api_constants::kServiceWorkersKey) == | 100 if (strcmp(key, extension_browsing_data_api_constants::kServiceWorkersKey) == |
101 0) | 101 0) |
102 return BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS; | 102 return content::BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS; |
103 if (strcmp(key, extension_browsing_data_api_constants::kCacheStorageKey) == 0) | 103 if (strcmp(key, extension_browsing_data_api_constants::kCacheStorageKey) == 0) |
104 return BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE; | 104 return content::BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE; |
105 if (strcmp(key, extension_browsing_data_api_constants::kWebSQLKey) == 0) | 105 if (strcmp(key, extension_browsing_data_api_constants::kWebSQLKey) == 0) |
106 return BrowsingDataRemover::DATA_TYPE_WEB_SQL; | 106 return content::BrowsingDataRemover::DATA_TYPE_WEB_SQL; |
107 | 107 |
108 return 0; | 108 return 0; |
109 } | 109 } |
110 | 110 |
111 // Returns false if any of the selected data types are not allowed to be | 111 // Returns false if any of the selected data types are not allowed to be |
112 // deleted. | 112 // deleted. |
113 bool IsRemovalPermitted(int removal_mask, PrefService* prefs) { | 113 bool IsRemovalPermitted(int removal_mask, PrefService* prefs) { |
114 // Enterprise policy or user preference might prohibit deleting browser or | 114 // Enterprise policy or user preference might prohibit deleting browser or |
115 // download history. | 115 // download history. |
116 if ((removal_mask & ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY) || | 116 if ((removal_mask & ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY) || |
117 (removal_mask & BrowsingDataRemover::DATA_TYPE_DOWNLOADS)) { | 117 (removal_mask & content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS)) { |
118 return prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory); | 118 return prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory); |
119 } | 119 } |
120 return true; | 120 return true; |
121 } | 121 } |
122 | 122 |
123 } // namespace | 123 } // namespace |
124 | 124 |
125 ExtensionFunction::ResponseAction BrowsingDataSettingsFunction::Run() { | 125 ExtensionFunction::ResponseAction BrowsingDataSettingsFunction::Run() { |
126 prefs_ = Profile::FromBrowserContext(browser_context())->GetPrefs(); | 126 prefs_ = Profile::FromBrowserContext(browser_context())->GetPrefs(); |
127 | 127 |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 scoped_refptr<PluginPrefs> plugin_prefs) { | 302 scoped_refptr<PluginPrefs> plugin_prefs) { |
303 if (!PluginDataRemoverHelper::IsSupported(plugin_prefs.get())) | 303 if (!PluginDataRemoverHelper::IsSupported(plugin_prefs.get())) |
304 removal_mask_ &= ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; | 304 removal_mask_ &= ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; |
305 | 305 |
306 BrowserThread::PostTask( | 306 BrowserThread::PostTask( |
307 BrowserThread::UI, FROM_HERE, | 307 BrowserThread::UI, FROM_HERE, |
308 base::BindOnce(&BrowsingDataRemoverFunction::StartRemoving, this)); | 308 base::BindOnce(&BrowsingDataRemoverFunction::StartRemoving, this)); |
309 } | 309 } |
310 | 310 |
311 void BrowsingDataRemoverFunction::StartRemoving() { | 311 void BrowsingDataRemoverFunction::StartRemoving() { |
312 BrowsingDataRemover* remover = | 312 content::BrowsingDataRemover* remover = |
313 BrowsingDataRemoverFactory::GetForBrowserContext(GetProfile()); | 313 content::BrowserContext::GetBrowsingDataRemover(GetProfile()); |
314 // Add a ref (Balanced in OnBrowsingDataRemoverDone) | 314 // Add a ref (Balanced in OnBrowsingDataRemoverDone) |
315 AddRef(); | 315 AddRef(); |
316 | 316 |
317 // Create a BrowsingDataRemover, set the current object as an observer (so | 317 // Create a BrowsingDataRemover, set the current object as an observer (so |
318 // that we're notified after removal) and call remove() with the arguments | 318 // that we're notified after removal) and call remove() with the arguments |
319 // we've generated above. We can use a raw pointer here, as the browsing data | 319 // we've generated above. We can use a raw pointer here, as the browsing data |
320 // remover is responsible for deleting itself once data removal is complete. | 320 // remover is responsible for deleting itself once data removal is complete. |
321 observer_.Add(remover); | 321 observer_.Add(remover); |
322 remover->RemoveAndReply( | 322 remover->RemoveAndReply( |
323 remove_since_, base::Time::Max(), | 323 remove_since_, base::Time::Max(), |
324 removal_mask_, origin_type_mask_, this); | 324 removal_mask_, origin_type_mask_, this); |
325 } | 325 } |
326 | 326 |
327 bool BrowsingDataRemoverFunction::ParseOriginTypeMask( | 327 bool BrowsingDataRemoverFunction::ParseOriginTypeMask( |
328 const base::DictionaryValue& options, | 328 const base::DictionaryValue& options, |
329 int* origin_type_mask) { | 329 int* origin_type_mask) { |
330 // Parse the |options| dictionary to generate the origin set mask. Default to | 330 // Parse the |options| dictionary to generate the origin set mask. Default to |
331 // UNPROTECTED_WEB if the developer doesn't specify anything. | 331 // UNPROTECTED_WEB if the developer doesn't specify anything. |
332 *origin_type_mask = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB; | 332 *origin_type_mask = content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB; |
333 | 333 |
334 const base::DictionaryValue* d = NULL; | 334 const base::DictionaryValue* d = NULL; |
335 if (options.HasKey(extension_browsing_data_api_constants::kOriginTypesKey)) { | 335 if (options.HasKey(extension_browsing_data_api_constants::kOriginTypesKey)) { |
336 if (!options.GetDictionary( | 336 if (!options.GetDictionary( |
337 extension_browsing_data_api_constants::kOriginTypesKey, &d)) { | 337 extension_browsing_data_api_constants::kOriginTypesKey, &d)) { |
338 return false; | 338 return false; |
339 } | 339 } |
340 bool value; | 340 bool value; |
341 | 341 |
342 // The developer specified something! Reset to 0 and parse the dictionary. | 342 // The developer specified something! Reset to 0 and parse the dictionary. |
343 *origin_type_mask = 0; | 343 *origin_type_mask = 0; |
344 | 344 |
345 // Unprotected web. | 345 // Unprotected web. |
346 if (d->HasKey(extension_browsing_data_api_constants::kUnprotectedWebKey)) { | 346 if (d->HasKey(extension_browsing_data_api_constants::kUnprotectedWebKey)) { |
347 if (!d->GetBoolean( | 347 if (!d->GetBoolean( |
348 extension_browsing_data_api_constants::kUnprotectedWebKey, | 348 extension_browsing_data_api_constants::kUnprotectedWebKey, |
349 &value)) { | 349 &value)) { |
350 return false; | 350 return false; |
351 } | 351 } |
352 *origin_type_mask |= | 352 *origin_type_mask |= |
353 value ? BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB : 0; | 353 value ? content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB : 0; |
354 } | 354 } |
355 | 355 |
356 // Protected web. | 356 // Protected web. |
357 if (d->HasKey(extension_browsing_data_api_constants::kProtectedWebKey)) { | 357 if (d->HasKey(extension_browsing_data_api_constants::kProtectedWebKey)) { |
358 if (!d->GetBoolean( | 358 if (!d->GetBoolean( |
359 extension_browsing_data_api_constants::kProtectedWebKey, | 359 extension_browsing_data_api_constants::kProtectedWebKey, |
360 &value)) { | 360 &value)) { |
361 return false; | 361 return false; |
362 } | 362 } |
363 *origin_type_mask |= | 363 *origin_type_mask |= |
364 value ? BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB : 0; | 364 value ? content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB : 0; |
365 } | 365 } |
366 | 366 |
367 // Extensions. | 367 // Extensions. |
368 if (d->HasKey(extension_browsing_data_api_constants::kExtensionsKey)) { | 368 if (d->HasKey(extension_browsing_data_api_constants::kExtensionsKey)) { |
369 if (!d->GetBoolean(extension_browsing_data_api_constants::kExtensionsKey, | 369 if (!d->GetBoolean(extension_browsing_data_api_constants::kExtensionsKey, |
370 &value)) { | 370 &value)) { |
371 return false; | 371 return false; |
372 } | 372 } |
373 *origin_type_mask |= | 373 *origin_type_mask |= |
374 value ? ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION : 0; | 374 value ? ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION : 0; |
(...skipping 19 matching lines...) Expand all Loading... |
394 if (!i.value().GetAsBoolean(&selected)) | 394 if (!i.value().GetAsBoolean(&selected)) |
395 return false; | 395 return false; |
396 if (selected) | 396 if (selected) |
397 *removal_mask |= MaskForKey(i.key().c_str()); | 397 *removal_mask |= MaskForKey(i.key().c_str()); |
398 } | 398 } |
399 | 399 |
400 return true; | 400 return true; |
401 } | 401 } |
402 | 402 |
403 bool BrowsingDataRemoveAppcacheFunction::GetRemovalMask(int* removal_mask) { | 403 bool BrowsingDataRemoveAppcacheFunction::GetRemovalMask(int* removal_mask) { |
404 *removal_mask = BrowsingDataRemover::DATA_TYPE_APP_CACHE; | 404 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_APP_CACHE; |
405 return true; | 405 return true; |
406 } | 406 } |
407 | 407 |
408 bool BrowsingDataRemoveCacheFunction::GetRemovalMask(int* removal_mask) { | 408 bool BrowsingDataRemoveCacheFunction::GetRemovalMask(int* removal_mask) { |
409 *removal_mask = BrowsingDataRemover::DATA_TYPE_CACHE; | 409 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_CACHE; |
410 return true; | 410 return true; |
411 } | 411 } |
412 | 412 |
413 bool BrowsingDataRemoveCookiesFunction::GetRemovalMask(int* removal_mask) { | 413 bool BrowsingDataRemoveCookiesFunction::GetRemovalMask(int* removal_mask) { |
414 *removal_mask = BrowsingDataRemover::DATA_TYPE_COOKIES | | 414 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_COOKIES | |
415 BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS; | 415 content::BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS; |
416 return true; | 416 return true; |
417 } | 417 } |
418 | 418 |
419 bool BrowsingDataRemoveDownloadsFunction::GetRemovalMask(int* removal_mask) { | 419 bool BrowsingDataRemoveDownloadsFunction::GetRemovalMask(int* removal_mask) { |
420 *removal_mask = BrowsingDataRemover::DATA_TYPE_DOWNLOADS; | 420 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS; |
421 return true; | 421 return true; |
422 } | 422 } |
423 | 423 |
424 bool BrowsingDataRemoveFileSystemsFunction::GetRemovalMask(int* removal_mask) { | 424 bool BrowsingDataRemoveFileSystemsFunction::GetRemovalMask(int* removal_mask) { |
425 *removal_mask = BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS; | 425 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS; |
426 return true; | 426 return true; |
427 } | 427 } |
428 | 428 |
429 bool BrowsingDataRemoveFormDataFunction::GetRemovalMask(int* removal_mask) { | 429 bool BrowsingDataRemoveFormDataFunction::GetRemovalMask(int* removal_mask) { |
430 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA; | 430 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA; |
431 return true; | 431 return true; |
432 } | 432 } |
433 | 433 |
434 bool BrowsingDataRemoveHistoryFunction::GetRemovalMask(int* removal_mask) { | 434 bool BrowsingDataRemoveHistoryFunction::GetRemovalMask(int* removal_mask) { |
435 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY; | 435 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY; |
436 return true; | 436 return true; |
437 } | 437 } |
438 | 438 |
439 bool BrowsingDataRemoveIndexedDBFunction::GetRemovalMask(int* removal_mask) { | 439 bool BrowsingDataRemoveIndexedDBFunction::GetRemovalMask(int* removal_mask) { |
440 *removal_mask = BrowsingDataRemover::DATA_TYPE_INDEXED_DB; | 440 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_INDEXED_DB; |
441 return true; | 441 return true; |
442 } | 442 } |
443 | 443 |
444 bool BrowsingDataRemoveLocalStorageFunction::GetRemovalMask(int* removal_mask) { | 444 bool BrowsingDataRemoveLocalStorageFunction::GetRemovalMask(int* removal_mask) { |
445 *removal_mask = BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE; | 445 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE; |
446 return true; | 446 return true; |
447 } | 447 } |
448 | 448 |
449 bool BrowsingDataRemovePluginDataFunction::GetRemovalMask(int* removal_mask) { | 449 bool BrowsingDataRemovePluginDataFunction::GetRemovalMask(int* removal_mask) { |
450 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; | 450 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; |
451 return true; | 451 return true; |
452 } | 452 } |
453 | 453 |
454 bool BrowsingDataRemovePasswordsFunction::GetRemovalMask(int* removal_mask) { | 454 bool BrowsingDataRemovePasswordsFunction::GetRemovalMask(int* removal_mask) { |
455 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS; | 455 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS; |
456 return true; | 456 return true; |
457 } | 457 } |
458 | 458 |
459 bool BrowsingDataRemoveServiceWorkersFunction::GetRemovalMask( | 459 bool BrowsingDataRemoveServiceWorkersFunction::GetRemovalMask( |
460 int* removal_mask) { | 460 int* removal_mask) { |
461 *removal_mask = BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS; | 461 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS; |
462 return true; | 462 return true; |
463 } | 463 } |
464 | 464 |
465 bool BrowsingDataRemoveCacheStorageFunction::GetRemovalMask(int* removal_mask) { | 465 bool BrowsingDataRemoveCacheStorageFunction::GetRemovalMask(int* removal_mask) { |
466 *removal_mask = BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE; | 466 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE; |
467 return true; | 467 return true; |
468 } | 468 } |
469 | 469 |
470 bool BrowsingDataRemoveWebSQLFunction::GetRemovalMask(int* removal_mask) { | 470 bool BrowsingDataRemoveWebSQLFunction::GetRemovalMask(int* removal_mask) { |
471 *removal_mask = BrowsingDataRemover::DATA_TYPE_WEB_SQL; | 471 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_WEB_SQL; |
472 return true; | 472 return true; |
473 } | 473 } |
OLD | NEW |