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

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

Issue 2827523003: Move BrowsingDataRemover to content/ (Closed)
Patch Set: Addressed some comments. Created 3 years, 8 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 <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
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 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 scoped_refptr<PluginPrefs> plugin_prefs) { 304 scoped_refptr<PluginPrefs> plugin_prefs) {
305 if (!PluginDataRemoverHelper::IsSupported(plugin_prefs.get())) 305 if (!PluginDataRemoverHelper::IsSupported(plugin_prefs.get()))
306 removal_mask_ &= ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; 306 removal_mask_ &= ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
307 307
308 BrowserThread::PostTask( 308 BrowserThread::PostTask(
309 BrowserThread::UI, FROM_HERE, 309 BrowserThread::UI, FROM_HERE,
310 base::Bind(&BrowsingDataRemoverFunction::StartRemoving, this)); 310 base::Bind(&BrowsingDataRemoverFunction::StartRemoving, this));
311 } 311 }
312 312
313 void BrowsingDataRemoverFunction::StartRemoving() { 313 void BrowsingDataRemoverFunction::StartRemoving() {
314 BrowsingDataRemover* remover = 314 content::BrowsingDataRemover* remover =
315 BrowsingDataRemoverFactory::GetForBrowserContext(GetProfile()); 315 content::BrowserContext::GetBrowsingDataRemover(GetProfile());
316 // Add a ref (Balanced in OnBrowsingDataRemoverDone) 316 // Add a ref (Balanced in OnBrowsingDataRemoverDone)
317 AddRef(); 317 AddRef();
318 318
319 // Create a BrowsingDataRemover, set the current object as an observer (so 319 // Create a BrowsingDataRemover, set the current object as an observer (so
320 // that we're notified after removal) and call remove() with the arguments 320 // that we're notified after removal) and call remove() with the arguments
321 // we've generated above. We can use a raw pointer here, as the browsing data 321 // we've generated above. We can use a raw pointer here, as the browsing data
322 // remover is responsible for deleting itself once data removal is complete. 322 // remover is responsible for deleting itself once data removal is complete.
323 observer_.Add(remover); 323 observer_.Add(remover);
324 remover->RemoveAndReply( 324 remover->RemoveAndReply(
325 remove_since_, base::Time::Max(), 325 remove_since_, base::Time::Max(),
326 removal_mask_, origin_type_mask_, this); 326 removal_mask_, origin_type_mask_, this);
327 } 327 }
328 328
329 bool BrowsingDataRemoverFunction::ParseOriginTypeMask( 329 bool BrowsingDataRemoverFunction::ParseOriginTypeMask(
330 const base::DictionaryValue& options, 330 const base::DictionaryValue& options,
331 int* origin_type_mask) { 331 int* origin_type_mask) {
332 // Parse the |options| dictionary to generate the origin set mask. Default to 332 // Parse the |options| dictionary to generate the origin set mask. Default to
333 // UNPROTECTED_WEB if the developer doesn't specify anything. 333 // UNPROTECTED_WEB if the developer doesn't specify anything.
334 *origin_type_mask = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB; 334 *origin_type_mask = content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
335 335
336 const base::DictionaryValue* d = NULL; 336 const base::DictionaryValue* d = NULL;
337 if (options.HasKey(extension_browsing_data_api_constants::kOriginTypesKey)) { 337 if (options.HasKey(extension_browsing_data_api_constants::kOriginTypesKey)) {
338 if (!options.GetDictionary( 338 if (!options.GetDictionary(
339 extension_browsing_data_api_constants::kOriginTypesKey, &d)) { 339 extension_browsing_data_api_constants::kOriginTypesKey, &d)) {
340 return false; 340 return false;
341 } 341 }
342 bool value; 342 bool value;
343 343
344 // The developer specified something! Reset to 0 and parse the dictionary. 344 // The developer specified something! Reset to 0 and parse the dictionary.
345 *origin_type_mask = 0; 345 *origin_type_mask = 0;
346 346
347 // Unprotected web. 347 // Unprotected web.
348 if (d->HasKey(extension_browsing_data_api_constants::kUnprotectedWebKey)) { 348 if (d->HasKey(extension_browsing_data_api_constants::kUnprotectedWebKey)) {
349 if (!d->GetBoolean( 349 if (!d->GetBoolean(
350 extension_browsing_data_api_constants::kUnprotectedWebKey, 350 extension_browsing_data_api_constants::kUnprotectedWebKey,
351 &value)) { 351 &value)) {
352 return false; 352 return false;
353 } 353 }
354 *origin_type_mask |= 354 *origin_type_mask |=
355 value ? BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB : 0; 355 value ? content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB : 0;
356 } 356 }
357 357
358 // Protected web. 358 // Protected web.
359 if (d->HasKey(extension_browsing_data_api_constants::kProtectedWebKey)) { 359 if (d->HasKey(extension_browsing_data_api_constants::kProtectedWebKey)) {
360 if (!d->GetBoolean( 360 if (!d->GetBoolean(
361 extension_browsing_data_api_constants::kProtectedWebKey, 361 extension_browsing_data_api_constants::kProtectedWebKey,
362 &value)) { 362 &value)) {
363 return false; 363 return false;
364 } 364 }
365 *origin_type_mask |= 365 *origin_type_mask |=
366 value ? BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB : 0; 366 value ? content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB : 0;
367 } 367 }
368 368
369 // Extensions. 369 // Extensions.
370 if (d->HasKey(extension_browsing_data_api_constants::kExtensionsKey)) { 370 if (d->HasKey(extension_browsing_data_api_constants::kExtensionsKey)) {
371 if (!d->GetBoolean(extension_browsing_data_api_constants::kExtensionsKey, 371 if (!d->GetBoolean(extension_browsing_data_api_constants::kExtensionsKey,
372 &value)) { 372 &value)) {
373 return false; 373 return false;
374 } 374 }
375 *origin_type_mask |= 375 *origin_type_mask |=
376 value ? ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION : 0; 376 value ? ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION : 0;
(...skipping 19 matching lines...) Expand all
396 if (!i.value().GetAsBoolean(&selected)) 396 if (!i.value().GetAsBoolean(&selected))
397 return false; 397 return false;
398 if (selected) 398 if (selected)
399 *removal_mask |= MaskForKey(i.key().c_str()); 399 *removal_mask |= MaskForKey(i.key().c_str());
400 } 400 }
401 401
402 return true; 402 return true;
403 } 403 }
404 404
405 bool BrowsingDataRemoveAppcacheFunction::GetRemovalMask(int* removal_mask) { 405 bool BrowsingDataRemoveAppcacheFunction::GetRemovalMask(int* removal_mask) {
406 *removal_mask = BrowsingDataRemover::DATA_TYPE_APP_CACHE; 406 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_APP_CACHE;
407 return true; 407 return true;
408 } 408 }
409 409
410 bool BrowsingDataRemoveCacheFunction::GetRemovalMask(int* removal_mask) { 410 bool BrowsingDataRemoveCacheFunction::GetRemovalMask(int* removal_mask) {
411 *removal_mask = BrowsingDataRemover::DATA_TYPE_CACHE; 411 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_CACHE;
412 return true; 412 return true;
413 } 413 }
414 414
415 bool BrowsingDataRemoveCookiesFunction::GetRemovalMask(int* removal_mask) { 415 bool BrowsingDataRemoveCookiesFunction::GetRemovalMask(int* removal_mask) {
416 *removal_mask = BrowsingDataRemover::DATA_TYPE_COOKIES | 416 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_COOKIES |
417 BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS; 417 content::BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS;
418 return true; 418 return true;
419 } 419 }
420 420
421 bool BrowsingDataRemoveDownloadsFunction::GetRemovalMask(int* removal_mask) { 421 bool BrowsingDataRemoveDownloadsFunction::GetRemovalMask(int* removal_mask) {
422 *removal_mask = BrowsingDataRemover::DATA_TYPE_DOWNLOADS; 422 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS;
423 return true; 423 return true;
424 } 424 }
425 425
426 bool BrowsingDataRemoveFileSystemsFunction::GetRemovalMask(int* removal_mask) { 426 bool BrowsingDataRemoveFileSystemsFunction::GetRemovalMask(int* removal_mask) {
427 *removal_mask = BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS; 427 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS;
428 return true; 428 return true;
429 } 429 }
430 430
431 bool BrowsingDataRemoveFormDataFunction::GetRemovalMask(int* removal_mask) { 431 bool BrowsingDataRemoveFormDataFunction::GetRemovalMask(int* removal_mask) {
432 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA; 432 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA;
433 return true; 433 return true;
434 } 434 }
435 435
436 bool BrowsingDataRemoveHistoryFunction::GetRemovalMask(int* removal_mask) { 436 bool BrowsingDataRemoveHistoryFunction::GetRemovalMask(int* removal_mask) {
437 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY; 437 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY;
438 return true; 438 return true;
439 } 439 }
440 440
441 bool BrowsingDataRemoveIndexedDBFunction::GetRemovalMask(int* removal_mask) { 441 bool BrowsingDataRemoveIndexedDBFunction::GetRemovalMask(int* removal_mask) {
442 *removal_mask = BrowsingDataRemover::DATA_TYPE_INDEXED_DB; 442 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_INDEXED_DB;
443 return true; 443 return true;
444 } 444 }
445 445
446 bool BrowsingDataRemoveLocalStorageFunction::GetRemovalMask(int* removal_mask) { 446 bool BrowsingDataRemoveLocalStorageFunction::GetRemovalMask(int* removal_mask) {
447 *removal_mask = BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE; 447 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE;
448 return true; 448 return true;
449 } 449 }
450 450
451 bool BrowsingDataRemovePluginDataFunction::GetRemovalMask(int* removal_mask) { 451 bool BrowsingDataRemovePluginDataFunction::GetRemovalMask(int* removal_mask) {
452 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; 452 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
453 return true; 453 return true;
454 } 454 }
455 455
456 bool BrowsingDataRemovePasswordsFunction::GetRemovalMask(int* removal_mask) { 456 bool BrowsingDataRemovePasswordsFunction::GetRemovalMask(int* removal_mask) {
457 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS; 457 *removal_mask = ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS;
458 return true; 458 return true;
459 } 459 }
460 460
461 bool BrowsingDataRemoveServiceWorkersFunction::GetRemovalMask( 461 bool BrowsingDataRemoveServiceWorkersFunction::GetRemovalMask(
462 int* removal_mask) { 462 int* removal_mask) {
463 *removal_mask = BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS; 463 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS;
464 return true; 464 return true;
465 } 465 }
466 466
467 bool BrowsingDataRemoveCacheStorageFunction::GetRemovalMask(int* removal_mask) { 467 bool BrowsingDataRemoveCacheStorageFunction::GetRemovalMask(int* removal_mask) {
468 *removal_mask = BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE; 468 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE;
469 return true; 469 return true;
470 } 470 }
471 471
472 bool BrowsingDataRemoveWebSQLFunction::GetRemovalMask(int* removal_mask) { 472 bool BrowsingDataRemoveWebSQLFunction::GetRemovalMask(int* removal_mask) {
473 *removal_mask = BrowsingDataRemover::DATA_TYPE_WEB_SQL; 473 *removal_mask = content::BrowsingDataRemover::DATA_TYPE_WEB_SQL;
474 return true; 474 return true;
475 } 475 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698