summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browsing_data_appcache_helper.cc
diff options
context:
space:
mode:
authormkwst@chromium.org <mkwst@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-04 12:01:45 +0000
committermkwst@chromium.org <mkwst@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-04 12:01:45 +0000
commit298f3975f4861aea491f9c3939cee7d54e6c3c6c (patch)
treeea9def7c3a5aaaa5d503e00aeb865cc5302d4ef5 /chrome/browser/browsing_data_appcache_helper.cc
parent8b3e1646d50026a5c9a2326e22c6156a9a4b9a3a (diff)
downloadchromium_src-298f3975f4861aea491f9c3939cee7d54e6c3c6c.zip
chromium_src-298f3975f4861aea491f9c3939cee7d54e6c3c6c.tar.gz
chromium_src-298f3975f4861aea491f9c3939cee7d54e6c3c6c.tar.bz2
Limiting the "Cookies and site data" form to valid Browsing Data schemes.
This change will prevent extension and devtools (as well as data from any other internal `chrome-*` URL schemes) from showing up in the list of browsing data. BUG=121441 TEST=unit_test Review URL: https://chromiumcodereview.appspot.com/9958107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130598 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browsing_data_appcache_helper.cc')
-rw-r--r--chrome/browser/browsing_data_appcache_helper.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/chrome/browser/browsing_data_appcache_helper.cc b/chrome/browser/browsing_data_appcache_helper.cc
index 153fa40..7417a19 100644
--- a/chrome/browser/browsing_data_appcache_helper.cc
+++ b/chrome/browser/browsing_data_appcache_helper.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -6,6 +6,7 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
+#include "chrome/browser/browsing_data_helper.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/url_constants.h"
#include "content/public/browser/browser_thread.h"
@@ -74,15 +75,15 @@ BrowsingDataAppCacheHelper::~BrowsingDataAppCacheHelper() {}
void BrowsingDataAppCacheHelper::OnFetchComplete(int rv) {
if (BrowserThread::CurrentlyOn(BrowserThread::IO)) {
- // Filter out appcache info entries for extensions. Extension state is not
- // considered browsing data.
+ // Filter out appcache info entries for non-websafe schemes. Extension state
+ // and DevTools, for example, are 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))
+ if (!BrowsingDataHelper::HasValidScheme(current->first))
origin_map.erase(current);
}
@@ -118,6 +119,9 @@ CannedBrowsingDataAppCacheHelper* CannedBrowsingDataAppCacheHelper::Clone() {
}
void CannedBrowsingDataAppCacheHelper::AddAppCache(const GURL& manifest_url) {
+ if (!BrowsingDataHelper::HasValidScheme(manifest_url))
+ return; // Ignore non-websafe schemes.
+
typedef std::map<GURL, appcache::AppCacheInfoVector> InfoByOrigin;
InfoByOrigin& origin_map = info_collection_->infos_by_origin;
appcache::AppCacheInfoVector& appcache_infos_ =