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

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

Issue 2827523003: Move BrowsingDataRemover to content/ (Closed)
Patch Set: Rebase over codereview.chromium.org/2815913005 Created 3 years, 7 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 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698