diff options
author | mkwst@chromium.org <mkwst@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-04 12:01:45 +0000 |
---|---|---|
committer | mkwst@chromium.org <mkwst@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-04 12:01:45 +0000 |
commit | 298f3975f4861aea491f9c3939cee7d54e6c3c6c (patch) | |
tree | ea9def7c3a5aaaa5d503e00aeb865cc5302d4ef5 /chrome/browser/browsing_data_database_helper.cc | |
parent | 8b3e1646d50026a5c9a2326e22c6156a9a4b9a3a (diff) | |
download | chromium_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.cc | 19 |
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() { |