Don't show extension state in cookie tree list.
BUG=38659
TEST=Unit tests in browsing_data_local_storage_helper_unittest.cc and browsing_data_database_helper_unittest.cc
Review URL: http://codereview.chromium.org/1405002
Patch from Mattias Nissler.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42935 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/browsing_data_appcache_helper.cc b/chrome/browser/browsing_data_appcache_helper.cc
index 8fa342e..adfa2c6 100644
--- a/chrome/browser/browsing_data_appcache_helper.cc
+++ b/chrome/browser/browsing_data_appcache_helper.cc
@@ -7,6 +7,7 @@
#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/net/chrome_url_request_context.h"
#include "chrome/browser/profile.h"
+#include "chrome/common/url_constants.h"
#include "webkit/appcache/appcache_database.h"
#include "webkit/appcache/appcache_storage.h"
@@ -63,6 +64,18 @@
void BrowsingDataAppCacheHelper::OnFetchComplete(int rv) {
if (ChromeThread::CurrentlyOn(ChromeThread::IO)) {
+ // Filter out appache info entries for extensions. Extension state is not
+ // considered browsing data.
+ typedef std::map<GURL, appcache::AppCacheInfoVector> InfoByOrigin;
+ InfoByOrigin& origin_map = info_collection_->infos_by_origin;
+ for (InfoByOrigin::iterator origin = origin_map.begin();
+ origin != origin_map.end();) {
+ InfoByOrigin::iterator current = origin;
+ ++origin;
+ if (current->first.SchemeIs(chrome::kExtensionScheme))
+ origin_map.erase(current);
+ }
+
appcache_info_callback_ = NULL;
ChromeThread::PostTask(ChromeThread::UI, FROM_HERE, NewRunnableMethod(
this, &BrowsingDataAppCacheHelper::OnFetchComplete, rv));