summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browsing_data_database_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_database_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_database_helper.cc')
-rw-r--r--chrome/browser/browsing_data_database_helper.cc19
1 files changed, 10 insertions, 9 deletions
diff --git a/chrome/browser/browsing_data_database_helper.cc b/chrome/browser/browsing_data_database_helper.cc
index 0bc331f..ccd89e1 100644
--- a/chrome/browser/browsing_data_database_helper.cc
+++ b/chrome/browser/browsing_data_database_helper.cc
@@ -9,13 +9,14 @@
#include "base/file_util.h"
#include "base/message_loop.h"
#include "base/utf_string_conversions.h"
+#include "chrome/browser/browsing_data_helper.h"
#include "chrome/browser/profiles/profile.h"
#include "content/public/browser/browser_thread.h"
#include "net/base/completion_callback.h"
#include "net/base/net_errors.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCString.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h"
using content::BrowserContext;
using content::BrowserThread;
@@ -87,11 +88,9 @@ void BrowsingDataDatabaseHelper::FetchDatabaseInfoOnFileThread() {
if (tracker_.get() && tracker_->GetAllOriginsInfo(&origins_info)) {
for (std::vector<webkit_database::OriginInfo>::const_iterator ori =
origins_info.begin(); ori != origins_info.end(); ++ori) {
- const std::string origin_identifier(UTF16ToUTF8(ori->GetOrigin()));
- if (StartsWithASCII(origin_identifier,
- std::string(chrome::kExtensionScheme),
- true)) {
- // Extension state is not considered browsing data.
+ const GURL origin(UTF16ToUTF8(ori->GetOrigin()));
+ if (!BrowsingDataHelper::HasValidScheme(origin)) {
+ // Non-websafe state is not considered browsing data.
continue;
}
WebSecurityOrigin web_security_origin =
@@ -107,7 +106,7 @@ void BrowsingDataDatabaseHelper::FetchDatabaseInfoOnFileThread() {
database_info_.push_back(DatabaseInfo(
web_security_origin.host().utf8(),
UTF16ToUTF8(*db),
- origin_identifier,
+ UTF16ToUTF8(ori->GetOrigin()),
UTF16ToUTF8(ori->GetDatabaseDescription(*db)),
web_security_origin.toString().utf8(),
file_info.size,
@@ -180,8 +179,10 @@ void CannedBrowsingDataDatabaseHelper::AddDatabase(
const std::string& name,
const std::string& description) {
base::AutoLock auto_lock(lock_);
- pending_database_info_.push_back(PendingDatabaseInfo(
- origin, name, description));
+ if (BrowsingDataHelper::HasValidScheme(origin)) {
+ pending_database_info_.push_back(PendingDatabaseInfo(
+ origin, name, description));
+ }
}
void CannedBrowsingDataDatabaseHelper::Reset() {